1.HashMap的数据结构是平面网格结构,用数组存放格子,格子里面是一个链表。计算key的hashcode然后&上map当前长度,把key映射到格子里面。
2.HashMap默认长度是16,扩展因子是0.75,首次扩展阈值为12。每次扩张为之前的一倍。oldLength<<1
3.JDK1.7里面的HashMap使用的是Entry数组作为表格+表格内的链表。
4.JDK1.8里面的HashMap使用的是Node数组作为表格+表格内部的链表/红黑树。如果链表中的元素超过8个,使用红黑树。
1.HashMap的数据结构是平面网格结构,用数组存放格子,格子里面是一个链表。计算key的hashcode然后&上map当前长度,把key映射到格子里面。
2.HashMap默认长度是16,扩展因子是0.75,首次扩展阈值为12。每次扩张为之前的一倍。oldLength<<1
3.JDK1.7里面的HashMap使用的是Entry数组作为表格+表格内的链表。
4.JDK1.8里面的HashMap使用的是Node数组作为表格+表格内部的链表/红黑树。如果链表中的元素超过8个,使用红黑树。
转载于:https://my.oschina.net/u/1458864/blog/3025198