深度解剖HashMap。HashMap的扩容机制,put一个节点的过程,hash扰动算法,底层数据结构:数组+链表+红黑树。什么时候用链表,什么时候用红黑树,为什么HashMap的容量必须要2的幂次方
一、HashMap 简介
HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。
HashMap 的key和value都可以为null,但 null 作为键只能有一个,null 作为值可以有多个
JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”(“链地址法”)解决冲突)。 JDK1.8 以后的 HashMap 在解决哈希冲突时有了较大的变化,当链表长度大于
原创
2021-07-18 23:06:13 ·
207 阅读 ·
0 评论