HashMap 哈希冲突、树化条件、扩容原理、并发死循环复盘
集合框架 · 难度 ★★★★☆ · 必考指数 ★★★★★🎯 面试官常问(真实高频题)什么是哈希冲突?HashMap 怎么解决?什么条件下链表转红黑树?什么条件下转回?JDK8 扩容为什么不用重新计算 hash?元素怎么搬?JDK7 并发扩容为什么死循环?画一下过程树化后如何保证查询 O(log n)?一、哈希冲突与解决方案哈希冲突:两个不同 key 的 hashCode 经过(n-1)hash落到同一个桶。HashMap 的方案 = 链地址法(拉链法):冲突的元素用链表串起来。JDK8 在链表过长时升级为红黑树。