从HashMap中删除所有值,而不是我正在寻找的值

ViR*_*LiC 1 java hashmap

标题问题总结得很好,但假设我使用Java进行编码并且HashMap看起来像这样(它显然有很多条目):

Map<String, Integer> myMap = new HashMap<>();

myMap.put{"a", 1}
myMap.put{"b", 2}
myMap.put{"c", 2}
myMap.put{"d", 3}
Run Code Online (Sandbox Code Playgroud)

现在,我不喜欢与2的值项,所以我想删除所有尽可能有效地,留下我只能与值1或3项.

它应该看起来好像我的地图是这样的:

Map<String, Integer> myMap = new HashMap<>();

myMap.put{"a", 1}
myMap.put{"d", 3}
Run Code Online (Sandbox Code Playgroud)

好像我的2值条目从来没有在那里!

我有什么选择以有效的方式做到这一点?

JB *_*zet 8

map.entrySet().removeIf(entry -> entry.getValue() == 2)
Run Code Online (Sandbox Code Playgroud)