1. 程式人生 > >HashMap的Put方法源碼

HashMap的Put方法源碼

threshold ppi png stat alt val OS 自己的 技術

首先講解HashMap的一些Field字段:

static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 默認初始化容量 向左移位4=2^4 = 16

static final int MAXIMUM_CAPACITY = 1 << 30; 最大容量 向左移位30=2^30

static final float DEFAULT_LOAD_FACTOR = 0.75f; 當前容量的極限比75%,用於擴展容量

static final int TREEIFY_THRESHOLD = 8; 鏈表節點>8,才能轉紅黑樹

static final int UNTREEIFY_THRESHOLD = 6; 紅黑樹節點<=6,轉鏈表

static final int MIN_TREEIFY_CAPACITY = 64; 紅黑樹初始容量

transient Node<K,V>[] table; 存放Mapping節點的位置,裏面V可以是鏈表和紅黑樹

技術分享圖片

從上面可以看出 Put方法調用了HashMap自己的內部了PutVal方法,那麽我們看下PutVal方法

技術分享圖片

就這樣吧,後續還會在改!

HashMap的Put方法源碼