Skip to content

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

Description

@sunquan123

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

Activity

  1. Snailclimb commented on Aug 28, 2023

    @Snailclimb
    Owner

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

    感谢指出!已修改:

    image
  2. JackChenF commented on Jul 11, 2024

    @JackChenF

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

  3. sunquan123 commented on Jul 11, 2024

    @sunquan123
    Author

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions