HashMap特點和原始碼刨析 map遍歷

2021-10-14 20:45:01 字數 557 閱讀 8039

特點:

1:存值是無序的

2:鍵和值都可以為null 但是 鍵是能是乙個為null

3:鍵的位置是惟一的,底層的資料結構控制鍵的

4:jdk1.8之前是 鍊錶+陣列 jdk1.8之後是鍊錶+陣列+紅黑樹

5:(閥值)>8 並且陣列長度大於64,才能將鍊錶轉換為黑紅樹,變成黑紅樹的目的是為了高效的查詢

當物件的hashcode相等時會產生hash碰撞 若key內容相同則替換舊的value,不然就鏈到表的後方,鍊錶長度超過閥值8就轉換為黑紅樹

&(按位與運算):運算規則:相同二進位制位上都是1的時候結果為1 否則為0

^(按位異或運算):運算規則:相同二進位制位數上,數字相同結果為0不同為1.

初始化容量初始化 也就是new hashmap()小括號裡的值

數量=需要儲存數量/負載因子+1 負載因子(0.75)

map便利的幾種方法

public static void method1(hashmapmap)

}public static void method3(hashmapmap) );

}

HashMap原始碼簡析

hashmap 基於map介面實現的,允許使用null值和null鍵,但資料無序的.劃重點 執行緒不安全.若是想獲取乙個執行緒安全的hashmap,可用下面方法 map map collections.synchronizedmap new hashmap hashmap的主幹是entry陣列,每乙...

原始碼剖析 HashMap和HashSet

hashmap總結 hashset hashset總結 三個構造方法,分別是 public hashmap public hashmap int initialcapacity public hashmap int initialcapacity,float loadfactor transient...

HashMap原始碼系列 HashMap的屬性

public class hashmap extends abstractmap implements map,cloneable,serializable容載因子 容載因子越大,table陣列中儲存的資料越密集,碰撞的可能性就越大。容載因子越小,儲存越稀疏,碰撞的可能性就越小,不過浪費儲存空間。轉...