Java 如何阻止HashMap覆盖键的上一个值?

Java 如何阻止HashMap覆盖键的上一个值?,java,hashmap,Java,Hashmap,在我的代码中,新值会覆盖以前存储在同一个键上的值 这是我的代码: HashMap<String, String> meMap = new HashMap<String, String>(); meMap.put(p.getName(), selState); HashMap meMap=newhashmap(); meMap.put(p.getName(),selState); HashMap是一个配对键/值对象。对于给定的键,它只能是一个值 如果尝试放置已存在的同一个

在我的代码中,新值会覆盖以前存储在同一个键上的值

这是我的代码:

HashMap<String, String> meMap = new HashMap<String, String>();
meMap.put(p.getName(), selState);
HashMap meMap=newhashmap();
meMap.put(p.getName(),selState);

HashMap是一个配对键/值对象。对于给定的键,它只能是一个值

如果尝试放置已存在的同一个键,则将替换该键的现有值


如果要添加新值,必须为该值指定一个新键。

如果所有值的键相同,则应将键映射到值列表:
map

然后更新映射到特定键的值列表:

List<String> values = map.get(key);
values.add("new");
map.put(key, values);
List values=map.get(键);
增加(“新”);
map.put(键、值);

使用已存在的键放置一个新值将覆盖以前的值。因此,我无法在哈希映射中动态插入更多值?您可以将值类型设置为一个
集合
,并在集合中插入多个值。我必须为所有对象设置id?可能的重复项,但键对所有对象都相同…我必须为所有对象设置id?因此,您不需要使用
哈希映射来解决您的问题。如果同一个键需要多个值,可以为每个键插入任何类型的
集合
字符串
(假设您的
HashMap
中有多个键)。是的,我的hasmap中有多个键我有不同的键…那么我如何动态地将多个“键,对象”放入映射中?@markella如果您有不同的键,HashMap将保留这两个键值对。但很明显,您使用不同的值放置相同的键。我有不同的键和一些值…因此,如果我只写一次“meMap.put(p.getName(),selState);”它不会覆盖?如果键不相同,它不应该覆盖旧值。应添加新的键值条目。