![Java集合架構(gòu)幻燈片_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/c2786647-940e-4589-9e14-d5e297dcc3e0/c2786647-940e-4589-9e14-d5e297dcc3e01.gif)
![Java集合架構(gòu)幻燈片_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/c2786647-940e-4589-9e14-d5e297dcc3e0/c2786647-940e-4589-9e14-d5e297dcc3e02.gif)
![Java集合架構(gòu)幻燈片_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/c2786647-940e-4589-9e14-d5e297dcc3e0/c2786647-940e-4589-9e14-d5e297dcc3e03.gif)
![Java集合架構(gòu)幻燈片_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/c2786647-940e-4589-9e14-d5e297dcc3e0/c2786647-940e-4589-9e14-d5e297dcc3e04.gif)
![Java集合架構(gòu)幻燈片_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/c2786647-940e-4589-9e14-d5e297dcc3e0/c2786647-940e-4589-9e14-d5e297dcc3e05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、J,1,Chapter14 Java集合架構(gòu),Collection接口和AbstractCollection類 規(guī)則集Set 比較器接口Comparator 線性表List Map,J,2,簡介,幾種常見的數(shù)據(jù)結(jié)構(gòu): 鏈表、堆棧、隊列、堆、優(yōu)先隊列等。 集合(collection):存儲一組對象的容器對象。 Java集合架構(gòu)支持三種類型的集合: 規(guī)則集(set)、線性表(list)、圖(map) Set:存儲一組互不相同的元素。 List:存儲一組順序排列的元素。 Map:存儲一組均有一個關(guān)聯(lián)鍵的對象。 注意:java集合架構(gòu)中的類都實現(xiàn)了Cloneable和Serializable接口。 本
2、章所學(xué)的類位于:java.util包中。 重點:如何使用集合架構(gòu)中的接口和類。,J,3,主要接口和類的關(guān)系圖,J,4,主要接口和類的關(guān)系圖,J,5,Collection接口和AbstrctCollection接口,J,6,散列集 (HashSet類),三個: 散列集(HashSet類)、 鏈?zhǔn)缴⒘屑?(LinkedHashSet類)、 樹形集(TreeSet類)。 散列集(HashSet類): 添加到散列集中的對象必須實現(xiàn)hashCode()方法。 實例: 創(chuàng)建一個散列集來存儲文本中解析出來的單詞,并使用迭代器遍歷該集合中的每一個單詞。 注意:1.將多個相同元素添加到規(guī)則集中,只有一個被存儲。
3、 2.集合中的元素沒有按插入時的順序存儲(集合的無序性)。 3.添加到集合中的元素必須和集合聲明的元素類型相同。 4.for(Object element:set)語句,用于遍歷集合中的每個元素。,J,7,LinkedHashSet: 使用鏈表實現(xiàn),可以按照元素插入的順序進(jìn)行訪問。 實例: 用文本文件中提取的字符串構(gòu)造鏈?zhǔn)缴⒘屑?,并用foreach語句對其中的元素進(jìn)行訪問。 程序:ex16_2.java 提示:如果不需要使元素按照其插入的順序進(jìn)行存儲,應(yīng)該使用HashSet,它的效率比LinkedHashSet高。 TreeSet: 可以對加入其中的元素進(jìn)行排序(升序或降序) 幾個方法: fi
4、rst()、last() 、headSet(toElement) 、tailSet(fromElement) 注意:加入樹形集中的元素必須是可比較的。,鏈?zhǔn)缴⒘屑?(LinkedHashSet)和樹形集(TreeSet),J,8,實現(xiàn)對象比較的方法: 方法1:實現(xiàn)Comparable接口。 實例:使用TreeSet類按照字母順序顯示單詞。 程序:ex16_3.java 使用TreeSet(Collection c)可以提高效率,僅排序一次。 注意:更新集合,需保持順序時,使用樹形集,否則使用散列集。 方法2:實現(xiàn)Comparator 接口。 可以將實現(xiàn)了Comparator 接口的不同類型的元
5、素加入到樹形集中。 實現(xiàn)兩個方法: public int compare(Object element1,Object element2) public boolean equals(Object element) 實例:幾何圖形面積的比較。并將不同的幾何圖形加入到樹形集中。然后輸出加入的元素。 程序:ex16_4.java 注意:Comparable用于比較相同類型的兩個對象,Comparator可比較不同類型的兩個對象。,鏈?zhǔn)缴⒘屑?(LinkedHashSet)和樹形集(TreeSet),J,9,線性表,使用線性表: 1.允許在一個集合中存儲重復(fù)的元素。 2. 可以指定元素的存儲位置。
6、3.可以用下標(biāo)來訪問元素。 4.但不支持有序存儲。,J,10,線性表,J,11,ArrayList和LinkedList的區(qū)別: 1.實現(xiàn)方式不同 數(shù)組線性表用數(shù)組實現(xiàn)的線性表,鏈?zhǔn)骄€性表是用鏈表結(jié)構(gòu)實現(xiàn)的線性表。 2.不同應(yīng)用場合效率不同 數(shù)組線性表可以用下標(biāo)隨機(jī)訪問元素,但不適合在任意的位置頻繁插入和刪除元素。 ArrayList 創(chuàng)建動態(tài)可變的數(shù)組。 trimToSize():用于調(diào)整數(shù)組大小到線性表實際的大小。 LinkedList 包含了從線性表兩端提取、插入和刪除元素的方法。 getFirst(), getLast() , addFirst(o:E) , addLast(o:E),
7、 removeFirst(), removeLast(),ArrayList和LinkedList,J,12,實例: 創(chuàng)建用數(shù)組填充的數(shù)組線性表,并將新元素插入到線性表指定的位置,且利用該數(shù)組線性表創(chuàng)建一個鏈表,并從該鏈表中插入和刪除元素。最后分別用向前和向后遍歷的方法遍歷該鏈表。 程序:ex16_5.java 列表的創(chuàng)建: 使用java.util.Arrays類中的asList(T. a)方法。 如:List list=Arrays.asList(“red”,”green”,” blue”);,ArrayList和LinkedList,J,13,線性表不支持有序存儲,但是: java.uti
8、l.Collections類提供了: 1. 用于線性表排序的靜態(tài)方法。 2. 用于求集合的最大、最小元素等的方法。 例1: List list=Arrays.asList(2,3,4,7,11,45,50,59,60); Collections.binarySearch(list,11); Collections.binarySearch(list,5); 例2: Set set=new HashSet(); set.add(“red”); set.add(“blue”); Collections.max(set);,線性表(List)和集合(Collection)的靜態(tài)方法,J,14,Sta
9、ck類: peek() 返回棧頂元素 pop() 彈出棧頂元素 push(o:E) 在棧頂添加一個新元素 Queue接口:LinkedList offer(element:E) 向隊列中插入一個元素 poll() 返回并刪除隊列頭,隊列為空,則返回null remove() 返回并刪除隊列頭,隊列為空,拋出異常 peek() 返回但不刪除隊列頭,如果隊列為空,返回null. 實例:分別創(chuàng)建一個棧和一個隊列,插入和刪除元素并顯示。 程序:ex16_6.java,棧類(Stack)、隊列(Queue),J,15,是Queue接口的實例。使用Comparable對元素排序,擁有最小數(shù)值的元素被賦予最
10、高的優(yōu)先級,最先從隊列中移出。也可以使用實現(xiàn)了比較器接口的實例對元素進(jìn)行比較。 優(yōu)先隊列創(chuàng)建的構(gòu)造方法: PriorityQueue() PriorityQueue(initialCapacity:int) PriorityQueue(c:Collection) PriorityQueue(initialCapacity:int,comparator:Comparator) 實例:創(chuàng)建一個優(yōu)先隊列,并以正序和倒序的方式輸出。 程序:ex16_7.java,優(yōu)先隊列(PriorityQueue),J,16,圖(map),Map接口:Map 建立元素和鍵的映射關(guān)系。 鍵:可以是任意類型的對象,一個圖中不能有重復(fù)的鍵,每個鍵對應(yīng)一個值。,J,17,實現(xiàn)Map接口的具體類,1.散列圖HashMap 元素是沒有順序的 2.鏈?zhǔn)缴⒘袌D LinkedHashMap 按元素插入的順序排序或最后訪問的時間順序排序 3.樹形圖 TreeMap 按照鍵的順序排序 實例:創(chuàng)建一個散列圖,一個鏈?zhǔn)缴⒘袌D和一個樹形圖,建立學(xué)生與年齡之間的映射關(guān)系。按照遞增的順序顯示樹形圖中的映射。 程序:ex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時勞動合同管理規(guī)定
- 一紙合同定乾坤:離婚孩子撫養(yǎng)權(quán)新規(guī)
- 個人合同轉(zhuǎn)讓授權(quán)委托書范文
- 個人與個人投資合作合同
- 中外技術(shù)研發(fā)合作合同范本
- 個人貸款合同模板版
- 個人與公司間的借款合同范本
- 個人與企業(yè)土地購置合同
- 上海市常用勞務(wù)合同范本
- 個人房產(chǎn)抵押借款合同
- 《電氣作業(yè)安全培訓(xùn)》課件
- 水平二(四年級第一學(xué)期)體育《小足球(18課時)》大單元教學(xué)計劃
- 《關(guān)于時間管理》課件
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項目 投標(biāo)方案(技術(shù)標(biāo))
- 水泥采購?fù)稑?biāo)方案(技術(shù)標(biāo))
- 醫(yī)院招標(biāo)采購管理辦法及實施細(xì)則(試行)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 廣州市勞動仲裁申請書
- 江西省上饒市高三一模理綜化學(xué)試題附參考答案
- 23-張方紅-IVF的治療流程及護(hù)理
評論
0/150
提交評論