Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類

上傳人:wux****ua 文檔編號(hào):21926081 上傳時(shí)間:2021-05-15 格式:PPT 頁(yè)數(shù):52 大?。?.37MB
收藏 版權(quán)申訴 舉報(bào) 下載
Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類_第1頁(yè)
第1頁(yè) / 共52頁(yè)
Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類_第2頁(yè)
第2頁(yè) / 共52頁(yè)
Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類_第3頁(yè)
第3頁(yè) / 共52頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java實(shí)用程序設(shè)計(jì)(西電版)第5章容器類(52頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1 第 5 章 容 器 類第 5 章 容 器 類5.1 容器的概念與相互關(guān)系5.2 Set接口及其實(shí)現(xiàn)5.3 List接口及其實(shí)現(xiàn)5.4 Queue接口及其實(shí)現(xiàn)5.5 Map接口及其實(shí)現(xiàn)5.6 迭代器5.7 容器類的高級(jí)話題 2 第 5 章 容 器 類 5.1 容 器 的 概 念 與 相 互 關(guān) 系Java容器類的對(duì)象實(shí)例又稱為容器,容器用于保存對(duì)象。根據(jù)所存儲(chǔ)的元素的形式,可將容器按照接口不同劃分為兩大類:(1) Collection:一個(gè)由一系列元素組成的序列,其中的元素是指向其他對(duì)象的引用。 (2) Map:一個(gè)由一系列“鍵值對(duì)”組成的序列,允許通過鍵查找值。 3 第 5 章 容 器 類

2、 圖5-1 容器層次的簡(jiǎn)要結(jié)構(gòu) 4 第 5 章 容 器 類 5 第 5 章 容 器 類 6 第 5 章 容 器 類 7 第 5 章 容 器 類 5.2 Set接 口 及 其 實(shí) 現(xiàn)Set不接受重復(fù)的元素。Java SE中提供3種Set容器的實(shí)現(xiàn):HashSet、TreeSet和LinkedHashSet。HashSet類采用Hash表實(shí)現(xiàn)Set接口,它的查詢速度最快,但其中的元素沒有固定順序;TreeSet類采用紅黑樹結(jié)構(gòu)實(shí)現(xiàn)了SortedSet接口,能夠保證元素處于排序狀態(tài);LinkedHashSet類采用Hash表與鏈表結(jié)合的方式實(shí)現(xiàn)Set接口,它能夠以插入順序保存元素。 8 第 5 章

3、容 器 類 9 第 5 章 容 器 類 10 第 5 章 容 器 類 11 第 5 章 容 器 類 12 第 5 章 容 器 類 5.3 List接 口 及 其 實(shí) 現(xiàn)與數(shù)組類似地,List也可以建立數(shù)字索引與具體對(duì)象的關(guān)聯(lián),區(qū)別在于List可以自動(dòng)擴(kuò)充容量。Java SE中有兩種類型的List:ArrayList和LinkedList。 13 第 5 章 容 器 類 14 第 5 章 容 器 類 15 第 5 章 容 器 類 16 第 5 章 容 器 類 17 第 5 章 容 器 類 18 第 5 章 容 器 類 19 第 5 章 容 器 類 5.4 Queue接 口 及 其 實(shí) 現(xiàn)Queu

4、e是一種先進(jìn)先出(FIFO)的容器。程序從Queue的一端放入對(duì)象,從另一端取出對(duì)象,對(duì)象進(jìn)入和取出的順序是相同的。在Java SE中,LinkedList實(shí)現(xiàn)了Queue接口,因此LinkedList可以用作Queue的一種實(shí)現(xiàn)。 20 第 5 章 容 器 類 21 第 5 章 容 器 類 22 第 5 章 容 器 類 23 第 5 章 容 器 類 24 第 5 章 容 器 類 25 第 5 章 容 器 類 5.5 Map接 口 及 其 實(shí) 現(xiàn)Map是一系列“鍵-值”之間的映射關(guān)系,是一種將對(duì)象(而非數(shù)字)與對(duì)象相關(guān)聯(lián)的設(shè)計(jì)。在很多情況下,這一設(shè)計(jì)都能夠有效地解決問題,例如,當(dāng)我們需要統(tǒng)計(jì)一

5、篇論文中的各個(gè)英文單詞的個(gè)數(shù)時(shí),可創(chuàng)建一個(gè)由String映射到Integer的Map。Map的值可以是復(fù)雜的結(jié)構(gòu),例如,當(dāng)希望將一個(gè)科學(xué)家與其發(fā)表的論文列表建立映射時(shí),可以建立一個(gè)MapScientist,List。 26 第 5 章 容 器 類 27 第 5 章 容 器 類 28 第 5 章 容 器 類 29 第 5 章 容 器 類 30 第 5 章 容 器 類 5.6 迭 代 器List容器可以通過索引對(duì)其中的元素進(jìn)行訪問,Queue可以通過具體方法對(duì)隊(duì)首的元素進(jìn)行訪問。對(duì)于不同類型的容器,遍歷和操作的方式是不同的。但是在有些時(shí)候,需要應(yīng)對(duì)這樣的情況,對(duì)于不同類型的容器,我們希望能夠通過同

6、樣的方式執(zhí)行訪問,這樣就不需要根據(jù)不同的容器類型進(jìn)行不同的編碼。容器的迭代器(Iterator)針對(duì)這一需求給出了解決方法。 31 第 5 章 容 器 類迭代器具有如下特征:(1) 迭代器只能單向移動(dòng);(2) 使用容器的iterator()方法返回容器的迭代器,迭代器準(zhǔn)備返回容器的第一個(gè)元素;(3) 使用next()方法獲得序列的下一個(gè)元素;(4) 使用hasNext()方法檢查序列中是否還有元素;(5) 使用remove()將迭代器新近返回的元素(即由next()產(chǎn)生的最后一個(gè)元素)刪除,因此在調(diào)用remove()之前必須先調(diào)用next()。 32 第 5 章 容 器 類 33 第 5 章

7、容 器 類 34 第 5 章 容 器 類ListIterator是Iterator的子類型,它只能用于各類List容器的訪問。通過List接口的listIterator方法能夠返回用于List容器的ListIterator。與一般迭代器相比,ListIterator的功能更全面,除了具有Iterator接口所規(guī)定的行為特征以外,它還具有如下特征:(1) 使用hasPrevious()方法檢查序列中是否有前一個(gè)元素;(2) 使用nextIndex()方法返回下一次next()方法調(diào)用將要返回的元素的索引;(3) 使用previous()方法返回序列中的前一個(gè)元素; 35 第 5 章 容 器 類(

8、4) 使用previousIndex()方法返回下一次previous()方法調(diào)用將要返回的元素的索引;(5) 使用set()方法將上一次next()調(diào)用或previous()調(diào)用所返回的元素替換為參數(shù)所指定的元素;(6) 使用add()方法向序列中下一個(gè)next()被訪問元素之前(亦即下一個(gè)previous()被訪問元素之后)加入指定的元素。加入元素后,隱含指針在新加入元素之后,即調(diào)用next()的返回結(jié)果不變,而調(diào)用previous()的返回結(jié)果是新加入的元素。 36 第 5 章 容 器 類 37 第 5 章 容 器 類 38 第 5 章 容 器 類 39 第 5 章 容 器 類 40 第

9、 5 章 容 器 類 5.7 容 器 類 的 高 級(jí) 話 題 1. Comparable接 口Comparable接口為實(shí)現(xiàn)這個(gè)接口的類的每一個(gè)對(duì)象提供了一種全序關(guān)系,即如果一個(gè)類實(shí)現(xiàn)了Comparable接口,那么這個(gè)類的任意兩個(gè)對(duì)象就可以比較大小。這樣的一種全序關(guān)系又稱為這個(gè)類的自然順序。實(shí)際上,Comparable接口中只有一個(gè)compareTo()方法的聲明。這個(gè)類中對(duì)compareTo()方法的實(shí)現(xiàn)就是自然順序的比較方法。 41 第 5 章 容 器 類對(duì)compareTo()方法的具體實(shí)現(xiàn)應(yīng)注意以下方面: (1) 如果當(dāng)前對(duì)象小于參數(shù)對(duì)象,則返回負(fù)數(shù);如果當(dāng)前對(duì)象等于參數(shù)對(duì)象,則返回

10、0;如果當(dāng)前對(duì)象大于參數(shù)對(duì)象,則返回正數(shù)。(2) 對(duì)compareTo()的實(shí)現(xiàn)必須保證pareTo(y)的符號(hào)與pareTo(x)的符號(hào)相反,且pareTo(y)拋出異常,當(dāng)且僅當(dāng)pareTo(x)拋出異常。 42 第 5 章 容 器 類(3) 自然順序關(guān)系的傳遞性應(yīng)得到保證,即(pareTo(y)0 & & pareTo(z)0)蘊(yùn)含pareTo(z)0。(4) 實(shí)現(xiàn)必須保證pareTo(y)=0能夠蘊(yùn)含對(duì)于任意z,pareTo(z)的符號(hào)與pareTo(z)的符號(hào)相同。 43 第 5 章 容 器 類 44 第 5 章 容 器 類 45 第 5 章 容 器 類 46 第 5 章 容 器 類 47 第 5 章 容 器 類2. EnumSet與 EnumMapEnumSet中的元素必須來自某個(gè)枚舉類型,當(dāng)創(chuàng)建EnumSet時(shí),必須指定這個(gè)枚舉類型。EnumSet的內(nèi)部是由位向量表示的,以保證其高效性。EnumSet除了包含從Set接口繼承的方法之外,還包含一些特有的接口方法,見表5-5。 48 第 5 章 容 器 類 49 第 5 章 容 器 類 50 第 5 章 容 器 類 51 第 5 章 容 器 類 52 第 5 章 容 器 類

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!