

Here is examples Java Remove Element from Map using Map remove element using removeIf, Map remove element using iterator, Map remove element using Stream (Java 8). In java, Map
is collection of key and value pair. Here is example of remove element from map using different different ways, as per your requirement and convincing best ways to select using java remove element from map.
Table of Contents
Example 1: Map remove element using removeIf (Java 8)
We need to perfrom operation on entrySet here because The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified
while an iteration over the set is in progress (except through the iterator’s own operation, or through the operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map
java.util.Map<String, Integer> languages = new HashMap<>(); languages.put("Java", 1995); languages.put("C", 1980); languages.put("PHP", 2000); languages.entrySet().removeIf(language->{ // removeIf method return true or false based on that element will be removed. return language.getKey().equals("Java"); // Its will return true if element key is Java }); languages.forEach((language,year)->{ System.out.println(new StringJoiner(" : ").add(language).add(year.toString())); });
Output:
C : 1980 PHP : 2000
Example 2: Map remove element using iterator
Map<String, Integer> languages = new HashMap<>(); languages.put("Java", 1995); languages.put("C", 1980); languages.put("PHP", 2000); Iterator<java.util.Map.Entry<String,Integer>> entryIterator= languages.entrySet().iterator(); while (entryIterator.hasNext()){ if(entryIterator.next().getKey().equalsIgnoreCase("C")){ entryIterator.remove(); // it will remove element from map } } languages.forEach((language,year)->{ System.out.println(new StringJoiner(" : ").add(language).add(year.toString())); });
Output
Java : 1995 PHP : 2000
Example 3: Map remove element using Stream (Java 8)
When we are using Stream and collection Map
at that it will create another Map
. Its will not remove element from same Collection
.
Map<String, Integer> languages = new HashMap<>(); languages.put("Java", 1995); languages.put("C", 1980); languages.put("PHP", 2000); Map<String,Integer> newLanguages = languages.entrySet() .stream().filter(language -> !language.getKey().equalsIgnoreCase("C")) .collect(Collectors.toMap(language -> language.getKey(), language -> language.getValue())); newLanguages.forEach((language, year) -> { System.out.println(new StringJoiner(" : ").add(language).add(year.toString())); });
Output:
Java : 1995 PHP : 2000
References:
https://stackoverflow.com/questions/1884889/iterating-over-and-removing-from-a-map