java集合框架淺析

一,什麼是java集合框架?
答:Java集合框架是一套用來創建集合類(collectionclass)的泛型。集合類提供了多種方式用於存儲和管理內存中任意類型的對象。集合類是以諸如鏈表或者堆棧之類的方式組織一套給定類型的對象的類。構成集合框架的主要類型定義在java.util包中。
二,集合框架中的接口
java.util包中定義了8個泛化的集合接口,它們決定了每種集合類可以使用的方法,這些接口之間的關係如圖2-1所示。

                java集合框架淺析
                                                            圖2-1
我們可以看到映射的接口與集和列表實現的接口沒有關聯。還可以看到映射的接口沒有實現Iterable接口,所以它不能用於迭代處理映射中的對象。
Collection:集合層次中的根接口,JDK沒有提供這個接口直接的實現類。
Set:不能包含重複的元素。SortedSet是一個按照升序排序的Set。
List:是一個有序的集合,可以包含重複的元素。提供了按索引訪問的方式。
Queue:java5新增了Queue接口,用以支持隊列的常見操作。LinkList類實現了Queue接口。
Map:包含了Key-Value對。Map不能包含重複的Key。SortedMap是一個按照升序排列Key的Map。

集合框架中的實現類及其關係如2-2所示。

             
圖 2-2
1,List接口擴展了Collection並聲明存儲一系列元素的類集的特性。使用一個基於零的下標,元素可以通過他們在列表中的位置被插入和訪問。一個列表可以包含重複元素。
2,Set接口定義了一個集合。它擴展了Collection並說明了不允許複製元素的類集的特性。因此,如果試圖將複製元素加到集合中時,add()方法將返回false。它本身並沒有定義任何附加方法。
3,SortedSet接口擴展了Set並說明了按升序排列的集合的特性。當沒有項包含在調用集合中時,其中的幾種方法引發NoSuchElementException異常。
4,HashMap實現一個映射,其中鍵的類型爲K,值的類型爲V,並且所有的鍵必須非null。定義有鍵的類必須實現方法hashcode()和equals()方法纔能有效地工作。
5,TreeMap實現的映射中,對象按照鍵的升序排序。
6,HashSet是HashMap實現的集。雖然集的定義是無序的但是還是需要某種方法能合理地有效地找出對象。使用HashMap對象實現集可以保證存取操作能在固定時間內完成。但隨着時間的過去,集中對象的訪問次序沒必要保持不變。
7,LinkedHashSet使用散列表實現的集,並且散列表的所有項都鏈接在雙向列表中。該類可以用來創建任何集的副本(HashSet除外)的副本,以便保存迭代順序。
8,TreeSet集中對象按升序排列的集,這意味着從TreeSet對象獲得的迭代器能提供升序排列的對象。實質上TreeSet類使用TreeMap對象。
9,ArrayList實現變長數組,且可以像列表一樣被訪問。其功能與泛型Vector類似,然而它是異步的,所以不能安全的用於多線程。
10,LinkedList實現一個鏈表。該類定義的鏈表也可以用作棧或者隊列。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章