1、hashmap属性概念
HashMap中傻傻分不清楚的那些概念_Hollis Chuang的博客-CSDN博客_hashmap桶子指的是啥
2、源码分析
https://www.cnblogs.com/xiaoxi/p/7233201.html
简介
HashMap为数组+链表+红黑树的数据结构
1、如何hash
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}
2、何时扩容
键值对大于阀值时或者初始化时,就调用resize方法进行扩容
3、怎么扩容(2n)
数组大小扩容为原来的2倍
4、何时由链表变成红黑树
链表大小>8,并且数组长度>64
5、如何获得原Node
n为数组长度
(p = tab[i = (n - 1) & hash])
备注:
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}