I have a HashMap
with hundred of key/value pairs.
Now I have to delete all key/values except 2 key/value. I have use this way :
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);
}
But java 8 introduced removeIf()
for these kind of condition. How can I solve this problem with removeIf()
method ?
To remove all values from HashMap, use the clear() method.
HashMap clear() Method in Java The java. util. HashMap. clear() method in Java is used to clear and remove all of the elements or mappings from a specified HashMap.
You'll need to it like this :
map.keySet().removeIf(k -> !(k.equals(Constants.search) || k.equals(Constants.context)));
It will iterate over the keys
and remove the ones for those the key
is not one of or two required keys
map.keySet().retainAll(myKeys);
Since keySet() still wraps the original HashMap, its #retainAll() affects the Map.
myKeys is a collection of keys, e.g.: myKeys = List.of("key1", "key2")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With