从key中删除hashmap中的值

use*_*112 1 java hashmap

所以,我有一个 HashMap<String, String>

public HashMap<String, String> frozen = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)

我想根据密钥从中删除一个值.所以我要说我放入这些

frozen.put("1", "1_1");
frozen.put("1", "1_2");
Run Code Online (Sandbox Code Playgroud)

我想只删除其中一个值,而不是整个键集.

我该怎么做呢?如果你仍然不明白,这个不存在的方法应该解释它.

frozen.remove("1", "1_2");
Run Code Online (Sandbox Code Playgroud)

显然这不存在,但这就是我想要的.

提前致谢.

Jos*_*h M 9

似乎最简单的解决方案是使用某种类型List作为您的价值.在这种特殊情况下,它可能看起来像这样:

final Map<String, List<String>> map = new HashMap<String, List<String>>();
final String key = "1";
map.put(key, new LinkedList<String>());
map.get(key).add("1_1");
map.get(key).add("1_2");
Run Code Online (Sandbox Code Playgroud)

然后删除给定特定键的值(如您的问题中所示),您可以尝试类似的东西 map.get(key).remove("1_2");