转发:
学习两篇文章足够了:
https://juejin.im/post/5ac83fa35188255c5668afd0
https://tech.meituan.com/2016/06/24/java-hashmap.html
概述
- 线程不安全。
- 最多只允许一条记录的键为null,允许多条记录的值为null。
- 读数据速度最快为O(1),最慢为O(lgn)。
- 存储数据是无序的。
底层存储数据的实现
- jdk1.7使用:数组+链表(拉链法)
- jdk1.8使用:数组+链表+红黑树(拉链法,当一条链上的节点大于8时转化为红黑树,小于6时退化为链表)