我有一个HashMap
,有数百个键/值对。
现在我必须删除除 2 键/值以外的所有键/值。 我用这种方式:
if(map!=null){
String search = map.get(Constants.search);
String context = map.get(Constants.context);
map = new HashMap<>();
map.put(Constants.search,search);
map.put(Constants.context,context);
}
但java 8为这些条件引入了removeIf()
。如何使用removeIf()
方法解决此问题?
答案 0 :(得分:2)
你需要这样:
map.keySet()
.removeIf(key -> !(key.equals(Constants.search) || key.equals(Constants.context)));
它将遍历keys
并删除那些key
不是其中之一或两个所需的keys
答案 1 :(得分:1)
map.keySet().retainAll("key1", "key2");