从哈希图中删除具有给定值的所有项目


问题内容

所以我有一个Java哈希图,如下所示:

hMap.put("1", "One");
hMap.put("2", "Two");
hMap.put("3", "Two");

我想删除所有值为“ Two”的项目

如果我做类似的事情:

hmap.values().remove("Two");

只有第一个被删除,我想全部删除,该怎么做?


问题答案:

hmap.values().removeAll(Collections.singleton("Two"));

编辑: 这种简洁方法的(显着)缺点是您基本上被迫发表评论,说出类似

// remove("Two") would only remove the first one

否则,一些好心的工程师将有一天会尝试为您简化并破坏它。发生这种情况…有时候好心做的事甚至是Future You!