Collection接口,包含list和set子接口
Collection和Map接口之間的主要區別在于:Collection中存儲了一組對象,而Map存儲關鍵字/值對。
在Map對象中,每一個關鍵字最多有一個關聯的值。
Map:不能包括兩個相同的鍵,一個鍵最多能綁定一個值。null可以作為鍵,這樣的鍵只有一個;可以有一個或多個鍵所對應的
值為null。當get()方法返回null值時,即可以表示Map中沒有該鍵,也可以表示該鍵所對應的值為null。因此,在Map中不能由get()方法來判斷Map中是否存在某個鍵,而應該用containsKey()方法來判斷。
繼承Map的類有:HashMap,HashTable
HashMap:Map的實現類,缺省情況下是非同步的,可以通過Map Collections.synchronizedMap(Map m)來達到線程同步
HashTable:Dictionary的子類,確省是線程同步的。不允許關鍵字或值為null
當元素的順序很重要時選用TreeMap,當元素不必以特定的順序進行存儲時,使用HashMap。Hashtable的使用不被推薦,因為HashMap提供了所有類似的功能,并且速度更快。當你需要在多線程環境下使用時,HashMap也可以轉換為同步的。
以下引用: |
當你事先不知道要存放數據的個數,或者你需要一種比數組下標存取機制更靈活的方法時,你就需要用到集合類。
集合類存放于java.util包中。 (1)集 (2)列表 (3)映射
java.util中共有13個類可用于管理集合對象,它們支持集、列表或映射等集合,以下是這些類的簡單介紹 集: 下圖是集合類所實現的接口之間的關系: Set和List都是由公共接口Collection擴展而來,所以它們都可以使用一個類型為Collection的變量來引用。這就意味著任何列表或集構成的集合都可以用這種方式引用,只有映射類除外(但也不是完全排除在外,因為可以從映射獲得一個列表。)所以說,把一個列表或集傳遞給方法的標準途徑是使用Collection類型的參數。 |