Skip to content

Commit 8472159

Browse files
面试题
1 parent 34af26b commit 8472159

3 files changed

Lines changed: 214 additions & 162 deletions

File tree

JAVA/Map/1.0 HashMap(JDK8) 0 - 源码解读.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ Java 中基于 Hash 算法的集合都是使用 ==hashCode 去定索引位置的
596596

597597
## HashMap为何从头插入改为尾插入
598598

599-
头插法虽然不用遍历链表了,但是在 resize 拷贝链表节点的时候会改变所有节点的顺序。当并发的情况下很容易出现链表有环的问题,在 get 的时候出现死锁
599+
头插法虽然不用遍历链表了,但是在 resize 拷贝链表节点的时候会改变所有节点的顺序。当并发的情况下很容易出现链表有环的问题,在 get 的时候出现死循环
600600

601601
所以在 JDK 8 的时候将头插法改为了尾插法,并使用两个指针分别记录头节点和尾节点,而尾节点的作用相当于是趟平道路移除链表中的环。
602602

File renamed without changes.

0 commit comments

Comments
 (0)