Java SE 包含了由一組類和接口組成的Java集合框架(Java Collection Framework,簡稱JCF),其主要功能是用來將存儲的數據以某種結構組織,并以特定的方式來訪問這些數據,其目標是提供一個處理對象集合的通用框架,減少程序員處理不同的對象集合時的編碼量,而Java集合類都位于java.util包中。
接下來就簡單的談下JCF類的內容。首先Java集合框架將對象的存儲方式分為三種類型,分別是:Set(集)、List(列表)、Map(映射)。
Set(集):對象容器中的對象沒有順序,且不能重復,對應接口Set;Set接口繼承自Collection接口的全部方法,對于我們這些Java初學者來說,需要先掌握Set接口下的HashSet類和TreeSet類。
HashSet類的特點是:當遍歷HashSet時,其中的元素是沒有順序的;HashSet中不允許出現重復元素,這里的重復元素是指有相同的哈希碼,并且用equals()方法進行比較時,返回true的兩個對象;允許包含null元素。
TreeSet類使用元素的自然順序對元素進行排序,或者根據創建set時提供的Comparator進行排序,具體取決于使用的構造方法。也就是說,TreeSet支持自然排序和自定義排序兩種方式。默認情況下,TreeSet采用自然排序方式。
List(列表):List中的元素是有順序的;List通常允許重復元素;List的實現類通常支持null元素;可以同過索引訪問List對象容器中的元素。我們需要先掌握該接口下的ArrayList類和LinkedList類。
ArrayList類在概念上和數組類似,表示一組編入索引的元素,區別之處在于ArrayList沒有預先確定的大小,其長度可按需增大。
LinkedList類是實現了雙向鏈表功能的列表,它將列表中的每個對象放在獨立的空間里中,而且每個空間中還保存有上一個和下一個鏈接的索引;LinkedList不支持快速隨機訪問,如果要訪問LinkedList中第n個元素,必須從頭開始查找,然后跳過前面的n-1個元素。并且,雖然LinkedList也提供了一個get()方法,可以根據指定的索引來獲取對應的元素,但是正因為它不支持快速隨機訪問,所以效率比較低下。
Map(映射):是Java集合框架中不同于Collection接口的另一個重要接口,它對應的是在一種從鍵(key)到值(value)的對應關系的集合。也就是說,Map類型的對象容器里面保存著兩組對象,一組對象用于保存Map里的key,另外一組用于保存value。key和value可以是任何引用類型的數據。key不能重復,但是value可以重復。我們需要先掌握HashMap類和TreeMap類。
HashMap類是基于哈希算法的Map接口的實現。HashMap將它的鍵保存在哈希表中進行維護,鍵是唯一的。但是,HashMap并不保證鍵以特定順序排列,特別是不保證順序永久不變。
TreeMap類是基于紅黑樹算法的Map接口實現。TreeMap中鍵的存放方式與TreeSet相似,它將鍵存放在樹中,鍵的順序按照自然順序或者自定義順序兩種方式排列。
新聞熱點
疑難解答