1,Hashmap是我們用得比較多的集合,產生於jdk 1.2版本,源碼put方法有個判斷:
if(key==null)
return putForNullKey(value);
可以看出hashmap是支持存放鍵key值爲null;
HashMap是線程不安全的,所以也相對更快
2,Hashtable產生於jdk 1.1版本,相對於HashMap 的方法,HashTable是線程安全的,在put方法上有個判斷:
if (value == null) {
throw new NullPointerException();
}
和 int hash = hash(key); //獲取hash值
說明HashTable是 不支持key,value爲null的 會報空指針異常
3,TreeMap是有順序的
TreeMap實現了SortMap接口 說明根據 存入集合,是有順序的,默認是按鍵值的升序排的序
可用iterator遍歷,得到想要的序
treeMap的鍵值key不能爲null
4,LinkedHashMap 插入是有順序的,
用iterator遍歷LinkedHashMap ,先進先出,基於鏈表的設計,
也可以在構造時帶參,根據參數採取排序
LinkedHashMap 是支持存放鍵key值爲null;