How to Remove Key-Value Pairs from a Map Based on Values in Java


How to Remove Key-Value Pairs from a Map Based on Values in Java ?

Answer

To remove key-value pairs from a map in Java based on values, you need to iterate through the map and check each value. If the value matches the specified condition, remove the corresponding key-value pair.



✐ Examples

1 Removing Key-Value Pairs with Specific Value

We can remove key-value pairs from a map in Java by iterating through the map and removing pairs with a specific value.

For example,

  1. We start by importing the java.util.HashMap and java.util.Iterator packages, which provide the HashMap class needed to create and manipulate the map and the Iterator class for iterating through the map.
  2. We declare and initialize a map named myMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We create an iterator for the entry set of the map using the iterator() method.
  4. We iterate through the map using a while loop. For each key-value pair, we check if the value matches the specified value 'two'.
  5. If the value matches, we use the remove() method of the iterator to remove the key-value pair from the map.
  6. We print the contents of the map to the console using a for loop and System.out.println to verify that the key-value pairs have been removed.

Java Program

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        // Declare and initialize a map
        Map<Integer, String> myMap = new HashMap<>();
        myMap.put(1, "one");
        myMap.put(2, "two");
        myMap.put(3, "three");
        myMap.put(4, "two");

        // Remove key-value pairs with specific value
        Iterator<Map.Entry<Integer, String>> iterator = myMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, String> entry = iterator.next();
            if (entry.getValue().equals("two")) {
                iterator.remove();
            }
        }

        // Print the contents of the map
        for (Map.Entry<Integer, String> entry : myMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

Output

1: one
3: three

2 Removing Key-Value Pairs with a Range of Values

We can remove key-value pairs from a map in Java by iterating through the map and removing pairs with values within a specified range.

For example,

  1. We start by importing the java.util.HashMap and java.util.Iterator packages, which provide the HashMap class needed to create and manipulate the map and the Iterator class for iterating through the map.
  2. We declare and initialize a map named myMap with some key-value pairs. In this example, the map has integer keys and integer values.
  3. We create an iterator for the entry set of the map using the iterator() method.
  4. We iterate through the map using a while loop. For each key-value pair, we check if the value falls within the specified range (e.g., between 2 and 3 inclusive).
  5. If the value falls within the range, we use the remove() method of the iterator to remove the key-value pair from the map.
  6. We print the contents of the map to the console using a for loop and System.out.println to verify that the key-value pairs have been removed.

Java Program

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        // Declare and initialize a map
        Map<Integer, Integer> myMap = new HashMap<>();
        myMap.put(1, 1);
        myMap.put(2, 2);
        myMap.put(3, 3);
        myMap.put(4, 2);

        // Remove key-value pairs with values in the range [2, 3]
        Iterator<Map.Entry<Integer, Integer>> iterator = myMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, Integer> entry = iterator.next();
            if (entry.getValue() >= 2 && entry.getValue() <= 3) {
                iterator.remove();
            }
        }

        // Print the contents of the map
        for (Map.Entry<Integer, Integer> entry : myMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

Output

1: 1

3 Removing Key-Value Pairs with Condition-Based Values

We can remove key-value pairs from a map in Java by iterating through the map and removing pairs with values that meet a specified condition.

For example,

  1. We start by importing the java.util.HashMap and java.util.Iterator packages, which provide the HashMap class needed to create and manipulate the map and the Iterator class for iterating through the map.
  2. We declare and initialize a map named myMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We create an iterator for the entry set of the map using the iterator() method.
  4. We iterate through the map using a while loop. For each key-value pair, we check if the value meets a specified condition (e.g., if the length of the string is 3).
  5. If the condition is met, we use the remove() method of the iterator to remove the key-value pair from the map.
  6. We print the contents of the map to the console using a for loop and System.out.println to verify that the key-value pairs have been removed.

Java Program

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        // Declare and initialize a map
        Map<Integer, String> myMap = new HashMap<>();
        myMap.put(1, "one");
        myMap.put(2, "two");
        myMap.put(3, "three");
        myMap.put(4, "four");

        // Remove key-value pairs where value length is 3
        Iterator<Map.Entry<Integer, String>> iterator = myMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, String> entry = iterator.next();
            if (entry.getValue().length() == 3) {
                iterator.remove();
            }
        }

        // Print the contents of the map
        for (Map.Entry<Integer, String> entry : myMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

Output

3: three
4: four

Summary

In this tutorial, we learned How to Remove Key-Value Pairs from a Map Based on Values in Java language with well detailed examples.




More Java Maps Tutorials

  1. How to create an Empty Map in Java ?
  2. How to create a Map with Initial Key-Value Pairs in Java ?
  3. How to Print a Map in Java ?
  4. How to Add a Key-Value Pair to a Map in Java ?
  5. How to Set a Default Value for a Key in a Map in Java ?
  6. How to Update the Value for a Key in a Map in Java ?
  7. How to Check if a Map is Empty in Java ?
  8. How to Check if a Key Exists in a Map in Java ?
  9. How to Check if a Value Exists in a Map in Java ?
  10. How to Get the Value Associated with a Key in a Map in Java ?
  11. How to Remove a Key-Value Pair from a Map in Java ?
  12. How to Remove Key-Value Pairs from a Map Based on Values in Java ?
  13. How to Clear All Key-Value Pairs from a Map in Java ?
  14. How to Iterate Over Keys in a Map in Java ?
  15. How to Iterate Over Values in a Map in Java ?
  16. How to Iterate Over Entries (Key-Value Pairs) in a Map in Java ?
  17. How to Get the Size (Number of Key-Value Pairs) of a Map in Java ?
  18. How to Convert a Map to an Array of Keys in Java ?
  19. How to Convert a Map to an Array of Values in Java ?
  20. How to Merge Two Maps in Java ?
  21. How to Copy a Map in Java ?
  22. How to Check if Two Maps are Equal in Java ?
  23. How to Sort a Map by Keys in Java ?
  24. How to Sort a Map by Values in Java ?
  25. How to Filter a Map Based on Keys in Java ?
  26. How to Filter a Map Based on Values in Java ?
  27. How to Reduce Values in a Map to a Single Value in Java ?
  28. How to Convert an Array of Key-Value Pairs to a Map in Java ?
  29. How to Convert a Map to a JSON String in Java ?
  30. How to Convert a JSON String to a Map in Java ?
  31. How to Swap Keys and Values in a Map in Java ?
  32. How to Create a Map of Maps in Java ?
  33. How to Iterate Over a Map of Maps in Java ?