版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java集合架構(gòu)Java高級(jí)程序設(shè)計(jì)(上)2簡(jiǎn)介幾種常見的數(shù)據(jù)結(jié)構(gòu):鏈表、堆棧、隊(duì)列、堆、優(yōu)先隊(duì)列等。集合(collection):存儲(chǔ)一組對(duì)象的容器對(duì)象。Java集合架構(gòu)支持三種類型的集合:規(guī)則集(set)、線性表(list)、圖(map)Set:存儲(chǔ)一組互不相同的元素。List:存儲(chǔ)一組順序排列的元素。Map:存儲(chǔ)一組均有一個(gè)關(guān)聯(lián)鍵的對(duì)象。注意:java集合架構(gòu)中的類都實(shí)現(xiàn)了Cloneable和Serializable接口。本章所學(xué)的類位于:java.util包中。重點(diǎn):如何使用集合架構(gòu)中的接口和類。Java高級(jí)程序設(shè)計(jì)(上)3主要接口和類的關(guān)系圖Java高級(jí)程序設(shè)計(jì)(上)4主要接口和類的關(guān)系圖Java高級(jí)程序設(shè)計(jì)(上)5Collection接口和AbstrctCollection接口Java高級(jí)程序設(shè)計(jì)(上)6散列集(HashSet類)
三個(gè):散列集(HashSet類)、鏈?zhǔn)缴⒘屑?LinkedHashSet類)、樹形集(TreeSet類)。散列集(HashSet類):
添加到散列集中的對(duì)象必須實(shí)現(xiàn)hashCode()方法。實(shí)例:創(chuàng)建一個(gè)散列集來存儲(chǔ)文本中解析出來的單詞,并使用迭代器遍歷該集合中的每一個(gè)單詞。注意:1.將多個(gè)相同元素添加到規(guī)則集中,只有一個(gè)被存儲(chǔ)。
2.集合中的元素沒有按插入時(shí)的順序存儲(chǔ)(集合的無序性)。
3.添加到集合中的元素必須和集合聲明的元素類型相同。
4.for(Objectelement:set)語句,用于遍歷集合中的每個(gè)元素。Java高級(jí)程序設(shè)計(jì)(上)7LinkedHashSet:
使用鏈表實(shí)現(xiàn),可以按照元素插入的順序進(jìn)行訪問。實(shí)例:用文本文件中提取的字符串構(gòu)造鏈?zhǔn)缴⒘屑⒂胒oreach語句對(duì)其中的元素進(jìn)行訪問。程序:ex16_2.java提示:如果不需要使元素按照其插入的順序進(jìn)行存儲(chǔ),應(yīng)該使用HashSet,它的效率比LinkedHashSet高。TreeSet:
可以對(duì)加入其中的元素進(jìn)行排序(升序或降序)
幾個(gè)方法:
first()、last()、headSet(toElement)、tailSet(fromElement)注意:加入樹形集中的元素必須是可比較的。鏈?zhǔn)缴⒘屑?LinkedHashSet)和樹形集(TreeSet)Java高級(jí)程序設(shè)計(jì)(上)8實(shí)現(xiàn)對(duì)象比較的方法:方法1:實(shí)現(xiàn)Comparable接口。實(shí)例:使用TreeSet類按照字母順序顯示單詞。程序:ex16_3.java
使用TreeSet(Collectionc)可以提高效率,僅排序一次。
注意:更新集合,需保持順序時(shí),使用樹形集,否則使用散列集。方法2:實(shí)現(xiàn)Comparator接口。
可以將實(shí)現(xiàn)了Comparator接口的不同類型的元素加入到樹形集中。
實(shí)現(xiàn)兩個(gè)方法:
publicintcompare(Objectelement1,Objectelement2)publicbooleanequals(Objectelement)實(shí)例:幾何圖形面積的比較。并將不同的幾何圖形加入到樹形集中。然后輸出加入的元素。程序:ex16_4.java注意:Comparable用于比較相同類型的兩個(gè)對(duì)象,Comparator可比較不同類型的兩個(gè)對(duì)象。鏈?zhǔn)缴⒘屑?LinkedHashSet)和樹形集(TreeSet)Java高級(jí)程序設(shè)計(jì)(上)9線性表使用線性表:
1.允許在一個(gè)集合中存儲(chǔ)重復(fù)的元素。
2.可以指定元素的存儲(chǔ)位置。
3.可以用下標(biāo)來訪問元素。4.但不支持有序存儲(chǔ)。Java高級(jí)程序設(shè)計(jì)(上)10線性表Java高級(jí)程序設(shè)計(jì)(上)11ArrayList和LinkedList的區(qū)別:
1.實(shí)現(xiàn)方式不同數(shù)組線性表用數(shù)組實(shí)現(xiàn)的線性表,鏈?zhǔn)骄€性表是用鏈表結(jié)構(gòu)實(shí)現(xiàn)的線性表。
2.不同應(yīng)用場(chǎng)合效率不同數(shù)組線性表可以用下標(biāo)隨機(jī)訪問元素,但不適合在任意的位置頻繁插入和刪除元素。ArrayList
創(chuàng)建動(dòng)態(tài)可變的數(shù)組。
trimToSize():用于調(diào)整數(shù)組大小到線性表實(shí)際的大小。LinkedList
包含了從線性表兩端提取、插入和刪除元素的方法。
getFirst(),getLast(),addFirst(o:E),addLast(o:E),removeFirst(),removeLast()ArrayList和LinkedListJava高級(jí)程序設(shè)計(jì)(上)12
實(shí)例:創(chuàng)建用數(shù)組填充的數(shù)組線性表,并將新元素插入到線性表指定的位置,且利用該數(shù)組線性表創(chuàng)建一個(gè)鏈表,并從該鏈表中插入和刪除元素。最后分別用向前和向后遍歷的方法遍歷該鏈表。程序:ex16_5.java列表的創(chuàng)建:使用java.util.Arrays類中的asList(T...
a)方法。如:List<String>list=Arrays.asList(“red”,”green”,”blue”);ArrayList和LinkedListJava高級(jí)程序設(shè)計(jì)(上)13線性表不支持有序存儲(chǔ),但是:
java.util.Collections類提供了:1.用于線性表排序的靜態(tài)方法。
2.
用于求集合的最大、最小元素等的方法。例1:List<Integer>list=Arrays.asList(2,3,4,7,11,45,50,59,60);Collections.binarySearch(list,11);Collections.binarySearch(list,5);例2:
Set<String>set=newHashSet();set.add(“red”);set.add(“blue”);
Collections.max(set);線性表(List)和集合(Collection)的靜態(tài)方法Java高級(jí)程序設(shè)計(jì)(上)14Stack類:
peek()返回棧頂元素
pop()彈出棧頂元素
push(o:E)在棧頂添加一個(gè)新元素Queue接口:LinkedList
offer(element:E)向隊(duì)列中插入一個(gè)元素
poll()返回并刪除隊(duì)列頭,隊(duì)列為空,則返回nullremove()返回并刪除隊(duì)列頭,隊(duì)列為空,拋出異常
peek()返回但不刪除隊(duì)列頭,如果隊(duì)列為空,返回null.實(shí)例:分別創(chuàng)建一個(gè)棧和一個(gè)隊(duì)列,插入和刪除元素并顯示。程序:ex16_6.java
棧類(Stack)、隊(duì)列(Queue)Java高級(jí)程序設(shè)計(jì)(上)15
是Queue接口的實(shí)例。使用Comparable對(duì)元素排序,擁有最小數(shù)值的元素被賦予最高的優(yōu)先級(jí),最先從隊(duì)列中移出。也可以使用實(shí)現(xiàn)了比較器接口的實(shí)例對(duì)元素進(jìn)行比較。
優(yōu)先隊(duì)列創(chuàng)建的構(gòu)造方法:
PriorityQueue()PriorityQueue(initialCapacity:int)PriorityQueue(c:Collection<?extendsE>)PriorityQueue(initialCapacity:int,comparator:Comparator<?SuperE>)實(shí)例:創(chuàng)建一個(gè)優(yōu)先隊(duì)列,并以正序和倒序的方式輸出。程序:ex16_7.java優(yōu)先隊(duì)列(PriorityQueue)Java高級(jí)程序設(shè)計(jì)(上)16圖(map)Map接口:Map<K,V>
建立元素和鍵的映射關(guān)系。鍵:可以是任意類型的對(duì)象,一個(gè)圖中不能有重復(fù)的鍵,每個(gè)鍵對(duì)應(yīng)一個(gè)值。Java高級(jí)程序設(shè)計(jì)(上)17實(shí)現(xiàn)Map接口的具體類
1.散列圖HashMap
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025吉林建筑安全員-C證考試(專職安全員)題庫及答案
- 世界11種氣候帶及柱狀圖
- 《情報(bào)服務(wù)與創(chuàng)新》課件
- 《常見發(fā)疹性傳染病》課件
- 單位人力資源管理制度呈現(xiàn)選集十篇
- 單位管理制度展示大合集人員管理篇十篇
- 學(xué)校環(huán)境調(diào)查報(bào)告
- 火災(zāi)自動(dòng)報(bào)警及聯(lián)動(dòng)控制課程課件
- 小學(xué)英語課件-時(shí)間
- 2024年氧系漂白助劑項(xiàng)目可行性研究報(bào)告
- 自身免疫性肝炎診斷和治療指南(2021版)解讀
- 淺析小班幼兒角色游戲的年齡特點(diǎn)及游戲指導(dǎo)
- 全州疫苗接種與免疫規(guī)劃培訓(xùn)班講話稿
- 詩化小說示范課
- 有機(jī)合成化學(xué)3-基團(tuán)的保護(hù)與基團(tuán)的反應(yīng)性轉(zhuǎn)換
- 康復(fù)醫(yī)學(xué)治療技術(shù)(士)《基礎(chǔ)知識(shí)》測(cè)試題(含答案)
- 學(xué)校未成年人保護(hù)和預(yù)防犯罪工作實(shí)施方案
- GB/T 41968-2022乳化廢液處理處置方法
- 心內(nèi)科住院醫(yī)師規(guī)培出科考試9
- 與公公婆婆斷絕關(guān)系協(xié)議書
- 某金礦技改工程建設(shè)項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論