gpt4 book ai didi

java - 打印出 hashmap 冲突

转载 作者:行者123 更新时间:2023-11-29 03:50:03 26 4
gpt4 key购买 nike

无论如何我可以打印出具有冲突值的键吗?如果一个键有两个值,我希望能够打印出这些值,我该怎么做,我在 HashMap 类中并对其进行修改。

最佳答案

If a key has two values...

HashMap 中, 一个键不能有两个值。如果您调用 map.put(key,value)与现有 key ,旧值从 map 中删除,并由 put() 返回.

每个键有多个值的一种方法是使用 HashMap<K,Collection<V>> .这会自动提供您想要的功能,因为您可以在向其中添加新元素后简单地检查值集合的内容。

也有提供此功能的第三方类,例如 MultiValueMap .

编辑:

如果您谈论的是多个 key 最终落入同一个bucket,那么您需要修改HashMapput()方法:

public V put(K key, V value) {
if (key == null)
return putForNullKey(value);
int hash = hash(key.hashCode());
int i = indexFor(hash, table.length);
if (table[i] != null) {
// TODO: there's already something in this bucket
}
for (Entry<K,V> e = table[i]; e != null; e = e.next) {
...

(在 TODO 行所在的位置添加您的代码。)

您需要对 putForNullKey() 进行类似的更改和其他相关方法,例如 putForCreate() .

关于java - 打印出 hashmap 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9216022/

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