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

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

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

14.9 積分

下載資源

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

資源描述:

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

1、1 第 5 章 容 器 類(lèi)第 5 章 容 器 類(lèi)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 容器類(lèi)的高級(jí)話(huà)題 2 第 5 章 容 器 類(lèi) 5.1 容 器 的 概 念 與 相 互 關(guān) 系Java容器類(lèi)的對(duì)象實(shí)例又稱(chēng)為容器,容器用于保存對(duì)象。根據(jù)所存儲(chǔ)的元素的形式,可將容器按照接口不同劃分為兩大類(lèi):(1) Collection:一個(gè)由一系列元素組成的序列,其中的元素是指向其他對(duì)象的引用。 (2) Map:一個(gè)由一系列“鍵值對(duì)”組成的序列,允許通過(guò)鍵查找值。 3 第 5 章 容 器 類(lèi)

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

3、容 器 類(lèi) 9 第 5 章 容 器 類(lèi) 10 第 5 章 容 器 類(lèi) 11 第 5 章 容 器 類(lèi) 12 第 5 章 容 器 類(lèi) 5.3 List接 口 及 其 實(shí) 現(xiàn)與數(shù)組類(lèi)似地,List也可以建立數(shù)字索引與具體對(duì)象的關(guān)聯(lián),區(qū)別在于List可以自動(dòng)擴(kuò)充容量。Java SE中有兩種類(lèi)型的List:ArrayList和LinkedList。 13 第 5 章 容 器 類(lèi) 14 第 5 章 容 器 類(lèi) 15 第 5 章 容 器 類(lèi) 16 第 5 章 容 器 類(lèi) 17 第 5 章 容 器 類(lèi) 18 第 5 章 容 器 類(lèi) 19 第 5 章 容 器 類(lèi) 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 章 容 器 類(lèi) 21 第 5 章 容 器 類(lèi) 22 第 5 章 容 器 類(lèi) 23 第 5 章 容 器 類(lèi) 24 第 5 章 容 器 類(lèi) 25 第 5 章 容 器 類(lèi) 5.5 Map接 口 及 其 實(shí) 現(xiàn)Map是一系列“鍵-值”之間的映射關(guān)系,是一種將對(duì)象(而非數(shù)字)與對(duì)象相關(guān)聯(lián)的設(shè)計(jì)。在很多情況下,這一設(shè)計(jì)都能夠有效地解決問(wèn)題,例如,當(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 章 容 器 類(lèi) 27 第 5 章 容 器 類(lèi) 28 第 5 章 容 器 類(lèi) 29 第 5 章 容 器 類(lèi) 30 第 5 章 容 器 類(lèi) 5.6 迭 代 器List容器可以通過(guò)索引對(duì)其中的元素進(jìn)行訪(fǎng)問(wèn),Queue可以通過(guò)具體方法對(duì)隊(duì)首的元素進(jìn)行訪(fǎng)問(wèn)。對(duì)于不同類(lèi)型的容器,遍歷和操作的方式是不同的。但是在有些時(shí)候,需要應(yīng)對(duì)這樣的情況,對(duì)于不同類(lèi)型的容器,我們希望能夠通過(guò)同

6、樣的方式執(zhí)行訪(fǎng)問(wèn),這樣就不需要根據(jù)不同的容器類(lèi)型進(jìn)行不同的編碼。容器的迭代器(Iterator)針對(duì)這一需求給出了解決方法。 31 第 5 章 容 器 類(lèi)迭代器具有如下特征:(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 章 容 器 類(lèi) 33 第 5 章

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

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

9、 5 章 容 器 類(lèi) 5.7 容 器 類(lèi) 的 高 級(jí) 話(huà) 題 1. Comparable接 口Comparable接口為實(shí)現(xiàn)這個(gè)接口的類(lèi)的每一個(gè)對(duì)象提供了一種全序關(guān)系,即如果一個(gè)類(lèi)實(shí)現(xiàn)了Comparable接口,那么這個(gè)類(lèi)的任意兩個(gè)對(duì)象就可以比較大小。這樣的一種全序關(guān)系又稱(chēng)為這個(gè)類(lèi)的自然順序。實(shí)際上,Comparable接口中只有一個(gè)compareTo()方法的聲明。這個(gè)類(lèi)中對(duì)compareTo()方法的實(shí)現(xiàn)就是自然順序的比較方法。 41 第 5 章 容 器 類(lèi)對(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 章 容 器 類(lèi)(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 章 容 器 類(lèi) 44 第 5 章 容 器 類(lèi) 45 第 5 章 容 器 類(lèi) 46 第 5 章 容 器 類(lèi) 47 第 5 章 容 器 類(lèi)2. EnumSet與 EnumMapEnumSet中的元素必須來(lái)自某個(gè)枚舉類(lèi)型,當(dāng)創(chuàng)建EnumSet時(shí),必須指定這個(gè)枚舉類(lèi)型。EnumSet的內(nèi)部是由位向量表示的,以保證其高效性。EnumSet除了包含從Set接口繼承的方法之外,還包含一些特有的接口方法,見(jiàn)表5-5。 48 第 5 章 容 器 類(lèi) 49 第 5 章 容 器 類(lèi) 50 第 5 章 容 器 類(lèi) 51 第 5 章 容 器 類(lèi) 52 第 5 章 容 器 類(lèi)

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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