gpt4 book ai didi

具有单独链接冲突解决方案的 Java 哈希表?

转载 作者:行者123 更新时间:2023-11-30 07:37:21 25 4
gpt4 key购买 nike

我已经使用内置的 java.util.hashtable 创建了一个程序,但现在我需要使用单独的链接来解决冲突。这种哈希表的实现是否可行?是否已经有一个使用单独链接的实现?

最佳答案

查看 source在 Hashtable 实现中,看起来它已经使用了单独的链接。如果您查看 Entry<K,V>从第 901 行开始的类,您会看到它引用了另一个名为 next 的条目.如果你再看看 put()方法,第 420 行 next引用通过构造函数填充为先前存储在该存储桶中的任何元素。

请注意,您通常不应该关心诸如此类的实现细节。 Java Collections Framework 可能是 Java 中使用最广泛的框架之一,因此您应该假设作者已经将性能调整到尽可能好。

我想指出的另一件事是 Hashtable 类大部分已被 HashMap 取代。类(它也使用单独的链接,参见 here )。两者之间的主要区别在于 Hashtable 中的所有方法。是同步的,而在 HashMap 中他们不是。在单线程环境中运行的情况下,这会带来更好的性能(可能是这个问题的原因?)。

如果您确实需要一个线程安全的映射实现,那么您应该考虑包装一个普通的 HashMap在调用 Collections.synchronizedMap() ,或使用 ConcurrentHashMap .

关于具有单独链接冲突解决方案的 Java 哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2756479/

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