HashMap和LinkedHashMap的區別

2021-09-08 15:59:01 字數 1332 閱讀 3523

hashmap,linkedhashmap,treemap都屬於map

map 主要用於儲存鍵(key)值(value)對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。

hashmap 

是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。hashmap最多隻允許一條記錄的鍵為null;允許多條記錄的值為 null;hashmap不支援執行緒的同步,即任一時刻可以有多個執行緒同時寫hashmap;可能會導致資料的不一致。如果需要同步,可以用 collections的synchronizedmap方法使hashmap具有同步的能力。

linkedhashmap

linkedhashmap也是乙個hashmap,但是內部維持了乙個雙向鍊錶,可以保持順序

treemap 可以用於排序

hashmap的例子

public static void main(string args) {  

mapmap = new hashmap(); 

map.put("a3", "aa");

map.put("a2", "bb"); 

map.put("b1", "cc");

for (iterator iterator = map.values().iterator(); iterator.hasnext();)     {

string name = (string) iterator.next(); 

system.out.println(name);   

輸出:bbccaa

linkedhashmap例子:

public static void main(string args) {   

mapmap = new linkedhashmap();

map.put("a3", "aa");       

map.put("a2", "bb"); 

map.put("b1", "cc"); 

for (iterator iterator = map.values().iterator(); iterator.hasnext();) {           

string name = (string) iterator.next(); 

system.out.println(name);     

輸出:aa

bbcc

總結歸納為:linkedmap在於儲存資料你想保持進入的順序與被取出的順序一致的話,優先考慮linkedmap,hashmap鍵只能允許為一條為空,value可以允許為多條為空,鍵唯一,但值可以多個。

經本人測試linkedmap鍵和值都不可以為空

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...

HashMap和LinkedHashMap的區別

hashmap,linkedhashmap,treemap都屬於map map 主要用於儲存鍵 key 值 value 對,根據鍵得到值,因此鍵不允許鍵重複,但允許值重複。hashmap 是乙個最常用的map,它根據鍵的hashcode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。ha...