Collections集合物件.ppt_第1頁
Collections集合物件.ppt_第2頁
Collections集合物件.ppt_第3頁
Collections集合物件.ppt_第4頁
Collections集合物件.ppt_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第17章 Java Collections集合物件,17-1 集合物件的基礎(chǔ) 17-2 實作Set介面的集合類別 17-3 實作List介面的集合類別 17-4 實作Map介面的集合類別 17-5 輸出Collections物件的元素,17-1-1 Java Collections Framework 17-1-2 集合介面 17-1-3 泛型Java的集合物件,17-1 集合物件的基礎(chǔ),17-1-1 Java Collections Framework-說明,集合物件(Collections)是指一組相關(guān)的物件集合,將這組物件集合視為單一物件,在集合物件中的物件稱為元素(Elements),

2、集合物件有很多種,其儲存的元素可能允許重複,有些集合物件的元素會進行排序,在舊版Java技術(shù)是指Vector和Hashtable物件。,17-1-1 Java Collections Framework-架構(gòu)1,JDK 1.2之後的版本提供全新的集合物件架構(gòu),稱為Java Collections Framework,這是用來儲存和處理集合物件的統(tǒng)一軟體架構(gòu),其組成如下所示: 集合介面(Collection Interface):一組定義完善的Java介面,提供處理集合物件的標準介面,其目的是讓集合物件擁有一致的操作方式,包含:Collection、Set、SortedSet、List、Map和

3、SortedMap介面。,17-1-1 Java Collections Framework-架構(gòu)2,實作(Implementations):實作集合介面的類別,稱為具體類別(Concrete Class),對比抽象類別,這是可以使用new運算子建立實例的類別,以實作的集合介面來區(qū)分,常用的介面如下表所示:,17-1-1 Java Collections Framework-架構(gòu)3,演算法(Algorithms):當(dāng)物件實作集合介面,其實作的一些多形方法,可以執(zhí)行集合物件元素的搜尋與排序等演算法。,17-1-2 集合介面-說明,集合介面(Collection Interface)是用來處理集合

4、物件中儲存的物件,提供一致的物件操作方式來新增、刪除和搜尋元素的方法,這是一個介面型態(tài)的類別架構(gòu),其根介面是:Collection和Map介面。,17-1-2 集合介面-Collection集合介面(圖例),Collection介面的擁有Set和List子介面,Set介面擁有SortedSet子介面,介面的繼承架構(gòu),如右圖所示:,17-1-2 集合介面-Collection集合介面(介面說明),Collection介面:類別架構(gòu)的根介面,不過並沒有任何類別直接實作Collection介面,Java Collections Framework的具體類別(Concrete Class)都是實作其子

5、介面。 Set介面:實作Set介面的集合物件,其儲存元素沒有重複元素。 List介面:實作List介面的集合物件可以擁有重複元素,元素是以循序方式存入,可以使用類似陣列索引方式來存取元素。 SortedSet介面:Set介面的子介面,實作SortedSet介面的集合物件,其儲存元素不只沒有重複,而且是從小到大進行排序。,17-1-2 集合介面- Map集合介面(圖例),Map介面並不是Collection介面的子介面,Map介面是一種特殊的Set介面,儲存的資料是一組對應(yīng)元素,擁有子介面SortedMap,介面繼承架構(gòu),如右圖所示:,17-1-2 集合介面- Map集合介面(介面說明),Map

6、介面:實作Map介面的集合物件並沒有重複元素,儲存的元素是一對:鍵值(Key)和值(Value),這是一種單方向的對應(yīng),鍵值可以對應(yīng)其值,例如:網(wǎng)域名稱對應(yīng)IP位址。 SortedMap介面:對應(yīng)SortedSet介面的Map介面子介面,實作SortedMap介面的集合物件,其儲存元素沒有重複,而且是以鍵值由小到大進行排序。,17-1-3 泛型Java的集合物件-說明,泛型Java(Generic Java)是JDK 5.0版在Java語法上的重大變革,提供類似C+語言的樣版(Templates)語法,新增編譯階段的集合物件型態(tài)檢查功能,可以減少程式碼中取出元素所需的大量型態(tài)轉(zhuǎn)換。,17-1-

7、3 泛型Java的集合物件-泛型型態(tài),泛型Java可以使用泛型型態(tài)(Generic Types)來擴充Java語言,簡單的說,就是在建立集合物件時,以泛型型態(tài)指定集合物件儲存元素的資料型態(tài),如下所示: HashSet hset = new HashSet(); HashSet hset = new HashSet(); HashSet hset = new HashSet(); 使用”括起資料型態(tài)就是泛型型態(tài),它是用來指定集合物件儲存元素的資料型態(tài)。,17-2 實作Set介面的集合類別,17-2-1 Set介面的基礎(chǔ) 17-2-2 HashSet類別 實作Set介面 17-2-3 TreeSe

8、t類別 實作SortedSet介面,17-2 實作Set介面的集合類別,Set介面是Collection介面的子介面,實作Set介面的集合物件,其儲存元素並沒有重複,如果是實作子介面SortedSet的集合物件,儲存的就是排序元素。,17-2-1 Set介面的基礎(chǔ)-說明,Set介面繼承Collection介面的所有方法,只是規(guī)範建構(gòu)子和某些方法,以滿足其儲存元素不能重複。 Set介面方法(也是Collection介面方法),E是泛型型態(tài),如下表所示:,17-2-1 Set介面的基礎(chǔ)-介面方法,17-2-2 HashSet類別 實作Set介面(說明),HashSet類別實作Set介面,繼承Col

9、lection介面的方法,使用雜湊表(Hash Table)演算法來改進新增、刪除和存取集合物件元素的執(zhí)行效率,其儲存元素的排列和插入順序不同,也不保證擁有固定的排列順序。,17-2-2 HashSet類別 實作Set介面(建立物件),HashSet類別提供數(shù)種過載建構(gòu)子,在Java程式建立HashSet物件(5.0版),如下所示: HashSet hset = new HashSet(); 上述程式碼建立儲存字串元素的HashSet物件,泛型型態(tài)為String。,17-2-2 HashSet類別 實作Set介面(建構(gòu)子),過載建構(gòu)子的說明,如下表所示:,17-2-3 TreeSet類別 實作

10、SortedSet介面(說明),TreeSet類別實作SortedSet介面,這是Set介面的子介面,其儲存元素不只沒有重複,而且由小到大進行排序,這是一種排序集合物件(Sorted Collection)。,17-2-3 TreeSet類別 實作SortedSet介面(建立物件),TreeSet類別提供數(shù)種過載建構(gòu)子,在Java程式建立TreeSet物件(5.0版),如下所示: TreeSet tset = new TreeSet(); 上述程式碼建立儲存字串元素的TreeSet物件。,17-2-3 TreeSet類別 實作SortedSet介面(建構(gòu)子),過載建構(gòu)子的說明,如下表所示:,1

11、7-2-3 TreeSet類別 實作SortedSet介面(建構(gòu)子),TreeSet類別實作SortedSet介面,除了繼承Set介面的方法外,其新增的介面方法,如下表所示:,17-3 實作List介面的集合類別,17-3-1 List介面的基礎(chǔ) 17-3-2 ArrayList類別 17-3-3 LinkedList類別,17-3-1 List介面的基礎(chǔ)-說明,List介面也是繼承自Collection介面,實作此介面的集合類別是一種循序集合物件(Ordered Collection),允許元素重複,元素擁有索引位置,可以使用類似陣列索引方式來存取元素。 循序集合物件(Ordered Col

12、lection)和排序集合物件(Sorted Collection)不同,循序集合物件如同陣列是指以元素位置的索引來排列,排序集合物件是以元素值的大小進行排列。,17-3-1 List介面的基礎(chǔ)-介面方法,17-3-2 ArrayList類別-說明,ArrayList類別實作List介面,儲存元素的方式類似陣列,元素使用索引位置依序存入,只需將元素新增或插入ArrayList物件,並不用事先宣告物件的尺寸,如同一個可調(diào)整陣列尺寸的動態(tài)陣列。,17-3-2 ArrayList類別-建立物件,在Java程式建立ArrayList物件(5.0版),如下所示: ArrayList alist = ne

13、w ArrayList(); 上述程式碼使用建構(gòu)子建立ArrayList物件儲存字串元素,泛型型態(tài)是String。,17-3-2 ArrayList類別-建構(gòu)子,過載建構(gòu)子的說明,如下表所示:,17-3-2 ArrayList類別-方法,ArrayList物件除了實作List介面的方法外,還新增一些方法,其說明如下表所示:,17-3-2 ArrayList類別-範例,在新增ArrayList物件的元素後,Java程式可以使用for迴圈配合索引取得每一個物件元素,如下所示: for ( int i = 0; i alist.size(); i+ ) System.out.print(alist.

14、get(i)+ ); 程式碼使用size()方法取得元素數(shù),get()方法配合索引位置取出ArrayList物件的元素。,17-3-3 LinkedList類別-說明,LinkedList類別是實作List介面,這是類似鏈結(jié)串列(Linked Lists)資料結(jié)構(gòu)的類別,各節(jié)點如同火車掛車廂一般,將每一個車廂的節(jié)點連結(jié)起來,如下圖所示:,17-3-3 LinkedList類別-建構(gòu)子,LinkedList類別提供方法可以在串列的頭和尾取出和刪除元素,在Java程式只需使用建構(gòu)子就可建立LinkedList物件,過載建構(gòu)子的說明,如下表所示:,17-3-3 LinkedList類別-方法,Lin

15、kedList物件除了實作List介面的方法外,新增方法的說明,如下表所示:,17-4 實作Map介面的集合類別,17-4-1 Map介面的基礎(chǔ) 17-4-2 HashMap類別 實作Map介面 17-4-3 TreeMap類別 實作SortedMap介面,17-4-1 Map介面的基礎(chǔ)-說明,Map介面是類別架構(gòu)的根介面,擁有子介面SortedMap介面,實作Map介面的集合類別,其儲存物件一共有2個:鍵值(Key)和對應(yīng)值(Value)的物件,其中鍵值不可重複,一個鍵值對應(yīng)一個值。,17-4-1 Map介面的基礎(chǔ)-介面方法,17-4-2 HashMap類別 實作Map介面(說明),Hash

16、Map類別實作Map介面,相當(dāng)於是舊版的Hashtable類別,其儲存元素有2個:key鍵值和其對應(yīng)值,允許儲存null值。 HashMap類別提供數(shù)種過載的建構(gòu)子,在Java程式建立HashMap物件(5.0版),如下所示: HashMap hmap = new HashMap(); 上述程式碼建立HashMap物件,因為儲存元素有鍵值和對應(yīng)值,所以指定2個泛型型態(tài)。,17-4-2 HashMap類別 實作Map介面(建構(gòu)子),過載建構(gòu)子的說明,如下表所示:,17-4-3 TreeMap類別 實作SortedMap介面(說明),TreeMap類別實作SortedMap介面,SortedMap

17、介面是Map介面的子介面,實作此介面的集合物件是以鍵值由小到大進行排序。在Java程式建立TreeMap物件(5.0版),如下所示: TreeMap tmap = new TreeMap(); 上述程式碼建立TreeMap物件,元素都為字串String資料型態(tài)。,17-4-3 TreeMap類別 實作SortedMap介面(建構(gòu)子),過載建構(gòu)子的說明,如下表所示:,17-4-3 TreeMap類別 實作SortedMap介面(方法),TreeMap類別實作SortedMap介面,除了繼承Map介面的方法外,其新增的介面方法,如下表所示:,17-5 輸出Collections物件的元素,17-5

18、-1 Iterator介面輸出元素 17-5-2 ListIterator介面輸出元素,17-5-1 Iterator介面輸出元素-說明,Iterator介面改進舊版Java技術(shù)的Enumeration介面,提供一致方法來走訪集合物件的元素或刪除元素,因為Collections集合物件已經(jīng)實作Iterator介面,換句話說,只需使用Collection、Set和List介面的iterator()方法,就可以取得Iterator介面的物件,如下表所示:,17-5-1 Iterator介面輸出元素-範例,例如:HashSet物件hset可以使用上表方法取得Iterator介面物件,如下所示: Iterator iterator = hset.iterator(); 上述程式碼是將HashSet物件的元素轉(zhuǎn)換成Iterator介面物件,泛型型態(tài)為String,現(xiàn)在我們只需呼叫介面方法,就可以依序走訪和刪除元素。,17-5-1 Iterator介面輸出元素-介面方法,在取得Iterato

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論