Java - 在不覆盖的情况下向现有 HashMap 键添加另一个字符串值?

标签 java hashmap

我想知道是否有人能够帮助添加另一个 String HashMap 中现有键的值在 java ?

我知道您可以使用 this.put("String", "String") 添加键值对方法。但是,它会覆盖现有值,而我希望使用相同的键存储和配对多个值?

谢谢你的帮助。

最佳答案

你希望在这里实现什么?

一个 Map ( HashMap )在您的情况下是从一个“键”到另一个值的直接“映射”。

例如。

"foo" -> 123
"bar" -> 321
"far" -> 12345
"boo" -> 54321

这意味着,如果您要尝试:
myHashMap.get("foo");

它将返回值 123 (当然,您返回的值的类型可以是您想要的任何类型)。

当然,这也意味着您对键的值所做的任何更改,它都会覆盖您分配给它的原始值,就像更改变量的值将覆盖原始分配的值一样。

说:
myHashMap.put("foo", 42);
"foo"的旧值 map 中的内容将替换为 42 .所以它会变成:
"foo" -> 42
"bar" -> 321
"far" -> 12345
"boo" -> 54321

但是,如果您需要多个 String对于从单个键映射的对象,您可以使用可以存储多个对象的不同对象,例如数组或列表(如果需要,甚至可以使用另一个 HashMap

例如,如果您要使用 ArrayLists ,当您为 HashMap 赋值时, (假设它被称为 myHashMap ),您将首先检查该 key 之前是否已使用过,如果没有,则创建一个新的 ArrayList使用您要添加的值,如果有,那么您只需将该值添加到列表中。

(假设 keyvalue 具有您想要的值)
ArrayList<String> list;
if(myHashMap.containsKey(key)){
    // if the key has already been used,
    // we'll just grab the array list and add the value to it
    list = myHashMap.get(key);
    list.add(value);
} else {
    // if the key hasn't been used yet,
    // we'll create a new ArrayList<String> object, add the value
    // and put it in the array list with the new key
    list = new ArrayList<String>();
    list.add(value);
    myHashMap.put(key, list);
}

关于Java - 在不覆盖的情况下向现有 HashMap 键添加另一个字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29717234/

相关文章:

java - 如何等到用户关闭框架才能运行其余代码?

java - 使用 Java 中的方法跳出循环

java - 创建可用作 HashMap 键的 Java 类

Java:与 HashMap 一起使用的键的良好候选者

java - HashMap 是否提供一对一的对应关系?

java - 在 java 中通过键从 HashMap 中删除项目

java - 从 fragment 移回到上一个 Activity

java - 使用 chromedriver 2.20 和 selenium server 2.48.2,测试失败并出现错误 "Chrome failed to start: exited abnormally"

java - 如何将sql查询的派生变量添加到java中的列表中

java - 在Java中调用HashMap中对象的方法