270 likes | 379 Views
第十四章: Collections 集合物件與資料結構. *集合物件的基礎 ……………….. *實作 Set 介面的集合類別 …….. *實作 List 介面的集合類別 ..…… *實作 Map 介面的集合類別 …….. * Collections 物件與資料結構 ….. *使用 Collections 物件實作類別關係. 14-1 集合物件的基礎 ◎ Java Collections Framework.
E N D
第十四章:Collections集合物件與資料結構 *集合物件的基礎 ……………….. *實作Set介面的集合類別 …….. *實作List介面的集合類別 ..…… *實作Map介面的集合類別 …….. *Collections物件與資料結構 ….. *使用Collections物件實作類別關係
14-1集合物件的基礎◎Java Collections Framework • 「集合物件」(Collections)是指一組相關的物件集合,將這組物件集合視為單一物件,在集合物件中的物件稱為「元素」。 • 組成架構: *集合介面 *實作 *演算法
Collection集合介面 Map集合介面 <<interface>> Collection <<interface>> List <<interface>> Set <<interface>> SortedSet <<interface>> SortedMap <<interface>> Map 14-1集合物件的基礎◎集合介面
14-2實作Set介面的集合類別◎Set介面的基礎 • 儲存元素沒有重複的元件 ;Set介面繼承Collections介面的所有方法
14-2實作Set介面的集合類別◎HashSet類別—實作Set介面14-2實作Set介面的集合類別◎HashSet類別—實作Set介面 • HashSet類別是實作Set介面,繼承Collection介面的方法,使用「雜湊表」(Hash Table)演算法來改進新增、刪除和存取集合物件元素。 • 儲存元素的排列和插入順序不同=>不固定的排列順序。 • 建立HashSet物件: HashSet hset = new HashSet( ); ch14_2_2
14-2實作Set介面的集合類別◎TreeSet類別—實作SortedSet介面14-2實作Set介面的集合類別◎TreeSet類別—實作SortedSet介面 • TreeSet類別實作SortedSet介面,是Set介面的子介面。 • 元素沒有重複,由小到大排序=>排序集合物件。 • 建立TreeSet物件: TreeSet tset = new TreeSet( );
14-2實作Set介面的集合類別◎TreeSet類別—實作SortedSet介面14-2實作Set介面的集合類別◎TreeSet類別—實作SortedSet介面
14-3實作List介面的集合類別◎List介面的基礎 • List 介面也是繼承自Collection介面=>循序集合物件。 • 允許重複元素。 • 元素擁有索引位置。(類似陣列索引方式來存取元素) • 循序與排序的不同: 循序:如同陣列【元素位置以索引來排列】 排序:以元素的大小進行排列。
14-3實作List介面的集合類別◎ArrayList類別 • ArrayList類別實作List介面。 • 儲存元素的方式類似陣列。【索引】 • 元素新增或插入ArrayList物件,並不用事先宣告物件的尺寸。【動態陣列】 • 建立ArrayList的物件: • ArrayList alist = new ArrayList()
first null 14-3實作List介面的集合類別◎LinkedList類別 • LinkedList類別實作List介面。 • 鏈結串列。
14-4實作Map介面的集合類別◎Map介面的基礎 • Map介面並不是擴充自Collection介面。 • 獨立類別架構的根介面。 • 屬於一種儲存「鍵值結合」元素的集合物件。 • 儲存物件共有兩個:鍵值(Key)、對應值(Value) Key:不可重複 Value:一個鍵值對應一個值
14-4實作Map介面的集合類別◎HashMap類別—實作Map介面14-4實作Map介面的集合類別◎HashMap類別—實作Map介面 • HaspMap類別實作Map介面。 • 相當於舊版的Hashtable類別。 • 儲存的元素有兩個:key值、對應值,允許儲存null值或鍵值。 • 建立HaspMap物件: HashMap hmap = new HashMap();
14-4實作Map介面的集合類別◎TreeMap類別—實作SortedMap介面14-4實作Map介面的集合類別◎TreeMap類別—實作SortedMap介面 • 鍵值由小到大進行排序。 • 建立TreeMap物件: TreeMap tmap = new TreeMap( );
14-4實作Map介面的集合類別◎HashMap類別—實作Map介面14-4實作Map介面的集合類別◎HashMap類別—實作Map介面
14-5Collection物件與資料結構 • 使用Java的LinkedList集合物件建立堆疊資料結構。 • 堆疊資料結構擁有兩種特性: *只允許從堆疊的頂端存取資料。 *Last Out,First In
14-6輸出Collections物件的元素 • Iterator和ListIterator介面可以使用一致的走訪方式輸出集合物件的元素。 • toArray() =>元素輸出成陣列結構。
14-6輸出Collections物件的元素◎Iterator介面輸出元素14-6輸出Collections物件的元素◎Iterator介面輸出元素 • 一致的方法來走訪集合物件的元素或刪除元素。 Ch14_6_1
14-6輸出Collections物件的元素◎ListIterator介面輸出元素14-6輸出Collections物件的元素◎ListIterator介面輸出元素 • 可雙向走訪集合物件的元素。 • ArrayList物件alist取得ListIterator介面物件。 ListIterator iterator = alist.listIterator(0);
14-6輸出Collections物件的元素◎ListIterator介面輸出元素14-6輸出Collections物件的元素◎ListIterator介面輸出元素
14-6輸出Collections物件的元素◎toArray()方法輸出成陣列14-6輸出Collections物件的元素◎toArray()方法輸出成陣列
14-7使用Collections物件時做類別關係◎實作Comparator介面的比較物件14-7使用Collections物件時做類別關係◎實作Comparator介面的比較物件
習題11—佇列(Queues) • 佇列與堆疊十分相似的資料結構,擁有兩種特性,如下所示: *從佇列的一端存入資料,從另一端讀取資料。 *資料存取的順序是先進先出(First In,First Out),也就是先存入佇列的資料,先行取出。