我想知道是否有人能够帮助添加另一个 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
使用您要添加的值,如果有,那么您只需将该值添加到列表中。(假设
key
和 value
具有您想要的值)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/