gpt4 book ai didi

java - HashMap 覆盖下一个值 Java

转载 作者:行者123 更新时间:2023-12-03 23:07:38 30 4
gpt4 key购买 nike

假设我有 hashmap 存储,它包含例如-(11,name1) (11,name2),我调用 HashMap.get(11),它只显示 name2,这意味着它覆盖 11 的第一个输入。如何我可以使用 hashmap 存储 ID 为 11 的 name1 和 name2 吗?我知道我可以同时使用 HashMap 和 HashSet,但我不想为 HashMap 创建每个 HashSet。我只想使用 hashSet。我该怎么做?我希望你能帮助我。谢谢。

public void insert(int ID, String key){
int hashKey = Hash(key);
System.out.println("Hash Key" + hashKey);
int node = Find(ID,hashKey);

storeR.put(node, key);
}

最佳答案

您可以使用:

HashMap<Integer, List<String>>

HashMap您必须为每个键赋予一个值。因此,当然,如果您将同一个键输入两次,该值将被覆盖。

解决方案是为每个键保存一个值集合。

在您的代码中而不是:

storeR.put(node, key);

你应该写:

List<String> nodeValues = storeR.get(node);
if (nodeValues == null) {
nodeValues = new ArrayList<String>();
storeR.put(node, nodeValues );
}
nodeValues.add(key);

你也应该改变storeR输入 HashMap<Integer, List<String>>

MultiMap也是类似的解决方案。

关于java - HashMap 覆盖下一个值 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856565/

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