”聲明一個(gè)類,為了和普通的類有所">
《泛型與集合框架》PPT課件

《泛型與集合框架》PPT課件

ID:41966097

大?。?.26 MB

頁數(shù):32頁

時(shí)間:2019-09-05

《泛型與集合框架》PPT課件_第1頁
《泛型與集合框架》PPT課件_第2頁
《泛型與集合框架》PPT課件_第3頁
《泛型與集合框架》PPT課件_第4頁
《泛型與集合框架》PPT課件_第5頁
資源描述:

《《泛型與集合框架》PPT課件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第12章泛型與集合框架12.1泛型泛型(Generics)是在JDK1.5中推出的,其主要目的是可以建立具有類型安全的集合框架,如鏈表、散列映射等數(shù)據(jù)結(jié)構(gòu)12.1.1泛型類可以使用“class名稱<泛型列表>”聲明一個(gè)類,為了和普通的類有所區(qū)別,這樣聲明的類稱作泛型類,如:classShowObject泛型類的類體和和普通類的類體完全類似,由成員變量和方法構(gòu)成12.1.2泛型類聲明對象和普通的類相比,泛型類聲明和創(chuàng)建對象時(shí),類名后多了一對“<>”,而且必須要用具體的類型替換“<>”中的泛型。12.1.3泛

2、型接口可以使用“interface名稱<泛型列表>”聲明一個(gè)接口,這樣聲名的接口稱作泛型接口如interfaceListen{voidlisten(Ex);}12.1.4泛型的目的Java泛型的主要目的是可以建立具有類型安全的數(shù)據(jù)結(jié)構(gòu),如鏈表、散列表等數(shù)據(jù)結(jié)構(gòu),最重要的一個(gè)優(yōu)點(diǎn)就是:在使用這些泛型類建立的數(shù)據(jù)結(jié)構(gòu)時(shí),不必進(jìn)行強(qiáng)制類型轉(zhuǎn)換,即不要求進(jìn)行運(yùn)行時(shí)類型檢查。JDK1.5是支持泛型的編譯器,它將運(yùn)行時(shí)的類型檢查提前到編譯時(shí)執(zhí)行,使代碼更安全。Java推出泛型的主要目的是為了建立具有類型安全的數(shù)據(jù)結(jié)構(gòu)

3、12.2鏈表鏈表是由若干個(gè)稱作節(jié)點(diǎn)的對象組成的一種數(shù)據(jù)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)含有一個(gè)數(shù)據(jù)和下一個(gè)節(jié)點(diǎn)的引用,或含有一個(gè)數(shù)據(jù)并含有上一個(gè)節(jié)點(diǎn)的引用和下一個(gè)節(jié)點(diǎn)的引用數(shù)據(jù)引用引用數(shù)據(jù)null引用數(shù)據(jù)引用引用數(shù)據(jù)引用null圖12.3雙鏈表示意圖12.2.1LinkedList泛型類java.util包中的LinkedList泛型類創(chuàng)建的對象以鏈表結(jié)構(gòu)存儲數(shù)據(jù),習(xí)慣上稱LinkedList類創(chuàng)建的對象為鏈表對象。例如,LinkedListlist=newLinkedList();創(chuàng)

4、建一個(gè)空雙鏈表。使用LinkedList泛型類聲明創(chuàng)建鏈表時(shí),必須要指定E的具體類型,然后鏈表就可以使用add(Eobj)方法向鏈表依次增加節(jié)點(diǎn)12.2.2常用方法以下是LinkedList泛型類實(shí)現(xiàn)Lis泛型接口中的一些常用方法。publicbooleanadd(Eelement)publicvoidadd(intindex,Eelement)publicvoidclear()publicEremove(intindex)publicbooleanremove(Eelement)public

5、Eget(intindex)publicintindexOf(Eelement)publicintlastIndexOf(Eelement)publicEset(intindex,Eelement)publicintsize()publicbooleancontains(Objectelement)以下是LinkedList泛型類本身新增加的一些常用方法publicvoidaddFirst(Eelement)publicvoidaddLast(Eelement)publicEgetFirst()publi

6、cEgetLast()publicEremoveFirst()publicEremoveLast()publicObjectclone()12.2.3遍歷鏈表當(dāng)用戶需要遍歷集合中的對象時(shí),應(yīng)當(dāng)使用該集合提供的迭代器,而不是讓集合本身來遍歷其中的對象。由于迭代器遍歷集合的方法在找到集合中的一個(gè)對象的同時(shí),也得到待遍歷的后繼對象的引用,因此迭代器可以快速地遍歷集合。鏈表對象可以使用iterator()方法獲取一個(gè)Iterator對象,該對象就是針對當(dāng)前鏈表的迭代器JDK1.5之前沒有泛型的LinkedList類,可

7、以用普通的LinkedList創(chuàng)建一個(gè)鏈表對象,如LinkedListmylist=newLinkedList();然后mylist鏈表可以使用add(Objectobj)方法向這個(gè)鏈表依次添加節(jié)點(diǎn)。由于任何類都是Object類的子類,因此可以把任何一個(gè)對象作為鏈表節(jié)點(diǎn)中的對象12.2.4排序與查找如果鏈表中的數(shù)據(jù)是實(shí)現(xiàn)了Comparable接口的類的實(shí)例,比如String對象,那么Java.util包中的Collections類調(diào)用sort(Listlist)方法可以對參數(shù)指定的列表進(jìn)行排序,即按節(jié)點(diǎn)中

8、的存儲的對象的大小升序排列節(jié)點(diǎn)。String類實(shí)現(xiàn)了泛型接口Comparable中的compareTo(Eb)方法,使得字符串可以按字典序比較大小,如果一個(gè)鏈表list如下添加節(jié)點(diǎn):list.add("bird");list.add("apple");list.add("cat");那么用sort方法排序list:Collection.sort(list);之后,list中三個(gè)節(jié)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。