Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d113b88

Browse files
Update HashMap(JDK1.8)源码+底层数据结构分析.md
1 parent 566d50d commit d113b88

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

‎docs/java/collection/HashMap(JDK1.8)源码+底层数据结构分析.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ HashMap只提供了put用于添加元素,putVal方法只是给put方法调用
236236

237237
**对putVal方法添加元素的分析如下:**
238238

239-
- 1如果定位到的数组位置没有元素 就直接插入。
240-
- 2如果定位到的数组位置有元素就和要插入的key比较,如果key相同就直接覆盖,如果key不相同,就判断p是否是一个树节点,如果是就调用`e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value)`将元素添加进入。如果不是就遍历链表插入(插入的是链表尾部)。
239+
1.如果定位到的数组位置没有元素 就直接插入。
240+
2.如果定位到的数组位置有元素就和要插入的key比较,如果key相同就直接覆盖,如果key不相同,就判断p是否是一个树节点,如果是就调用`e = ((TreeNode<K,V>)p).putTreeVal(this, tab, hash, key, value)`将元素添加进入。如果不是就遍历链表插入(插入的是链表尾部)。
241241

242242
ps:下图有一个小问题,来自 [issue#608](https://github.com/Snailclimb/JavaGuide/issues/608)指出:直接覆盖之后应该就会 return,不会有后续操作。参考 JDK8 HashMap.java 658 行。
243243

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /