Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linkedhashmap-source-code.md 链表转红黑树条件勘误 #2147

Closed
sunquan123 opened this issue Aug 28, 2023 · 3 comments
Closed

linkedhashmap-source-code.md 链表转红黑树条件勘误 #2147

sunquan123 opened this issue Aug 28, 2023 · 3 comments
Labels
bug Content error

Comments

@sunquan123
Copy link

Snipaste_2023-08-28_10-29-53
这里应该改为判断链表上的节点个数达到树化的阈值8,因为源码的判断是从链表初始元素开始遍历,下标是从0开始的,所以判断条件设置为8-1=7,其实是迭代到尾部元素时再判断整个链表长度大于等于8才进行树化操作。源码如下:
Snipaste_2023-08-28_10-33-04
建议修正一下~

@Snailclimb
Copy link
Owner

Snailclimb commented Aug 28, 2023

因为源码的判断是从链表初始元素开始遍历,下标是从0开始的,所以判断条件设置为8-1=7,其实是迭代到尾部元素时再判断整个链表长度大于等于8才进行树化操作。源码如下:

感谢指出!已修改:

image

@Snailclimb Snailclimb added the bug Content error label Aug 28, 2023
@JackChenF
Copy link

判断的阈值得到了8,实际上加上数组的头节点此时链表上的节点数已经达到9个了

@sunquan123
Copy link
Author

判断的阈值得到了8,实际上加上数组的头节点此时链表上的节点数已经达到9个了

对,这里是在第九个元素追加到链表中的时候,进行了树化。所以严谨的说,是“linkedhashmap在插入第九个元素时,判断链表中已存在八个元素,则进行树化”

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Content error
Projects
None yet
Development

No branches or pull requests

3 participants