gpt4 book ai didi

java - 当条目超过饱和级别时,Java 8 HashMap 中如何创建树

转载 作者:行者123 更新时间:2023-12-02 02:24:02 26 4
gpt4 key购买 nike

我正在浏览 java 8 中的 TreeNode 类。

static final class TreeNode<K, V> extends java.util.LinkedHashMap.Entry<K, V> {
HashMap.TreeNode<K, V> parent;
HashMap.TreeNode<K, V> left;
HashMap.TreeNode<K, V> right;
HashMap.TreeNode<K, V> prev;
boolean red;

TreeNode(int arg0, K arg1, V arg2, HashMap.Node<K, V> arg3) {
super(arg0, arg1, arg2, arg3);
}

HashCode相同时将创建树,即所有哈希冲突键的存储桶将相同。那么当同一个桶中的条目超过8个时,如何创建红黑树呢?

最佳答案

在Java 8中,当桶中的元素数量达到一定阈值时,HashMap会用二叉树替换链表。

将列表转换为二叉树时,使用哈希码作为分支变量。

如果同一个桶中有两个不同的哈希码,一个被认为更大并位于树的右侧,另一个位于左侧。

但是当两个哈希码相等时,HashMap 假定键是可比较的,并比较键来确定方向,以便可以维持某种顺序。

关于java - 当条目超过饱和级别时,Java 8 HashMap 中如何创建树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48058772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com