gpt4 book ai didi

java - 具有重复键的映射行为

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

HashMap 通常会将其值替换为最新的值。但我读过的一篇文章提到了它,因为如果添加重复值,它会保留一个链接列表。

Read the "What will happen if two different objects have same hashcode"

但是我没有发现连ConcurrentHashMap也不维护这样的列表?

什么集合在列表中维护重复项,如果是,如何使用 get("key") 方法识别相关对象?

最佳答案

“List”实际上是链表对象结构的重新实现。这是 HashMap 用于存储键和值的 Entry 类:

static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next; <-- This one refers to the next element
int hash
..
}

因此,LinkedList 没有显式实现。

这篇文章讨论了如果两个键具有相同的哈希码会发生什么情况。当然,它会存储两个键值对。如果两个键equal()彼此相同,那么它将替换该值。

HashMap 的详细工作原理:请参阅我对此问题的回答:Best practices on what should be key in a hashtable

关于java - 具有重复键的映射行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376351/

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