How to Filter a Map Based on Keys in Java - Step by Step Examples



How to Filter a Map Based on Keys in Java ?

Answer

To filter a map based on keys in Java, you can iterate over the map entries and add key-value pairs that meet the filter criteria to a new map. This method allows you to create a subset of the original map based on specific key conditions.



✐ Examples

1 Filtering a Map Based on Key Range

We can filter a map based on a range of keys in Java by iterating over the map entries and adding key-value pairs that fall within the specified range to a new map.

For example,

  1. We start by importing the java.util.HashMap and java.util.Map classes, which provide the necessary functions and data structures for working with maps.
  2. We declare and initialize a `HashMap` named unsortedMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We declare an empty map named filteredMap to store the filtered key-value pairs.
  4. We define the lower and upper bounds of the key range.
  5. We iterate over the original map entries using a for loop and check if each key falls within the specified range.
  6. We add the key-value pairs that meet the condition to the filteredMap.
  7. We print the filtered map to the console using the System.out.println function to verify the filtering.

Java Program

import java.util.HashMap;
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");
        myMap.put(5, "five");

        // Declare an empty map to store the filtered key-value pairs
        Map<Integer, String> filteredMap = new HashMap<>();

        // Define the key range
        int lowerBound = 2;
        int upperBound = 4;

        // Iterate over the original map and filter based on the key range
        for (Map.Entry<Integer, String> entry : myMap.entrySet()) {
            if (entry.getKey() >= lowerBound && entry.getKey() <= upperBound) {
                filteredMap.put(entry.getKey(), entry.getValue());
            }
        }

        // Print the filtered map
        System.out.println("Filtered Map by Key Range: " + filteredMap);
    }
}

Output

Filtered Map by Key Range: {2=two, 3=three, 4=four}

2 Filtering a Map Based on Specific Keys

We can filter a map based on specific keys in Java by iterating over the map entries and adding key-value pairs that match the specified keys to a new map.

For example,

  1. We start by importing the java.util.HashMap, java.util.HashSet, and java.util.Map classes, which provide the necessary functions and data structures for working with maps and sets.
  2. We declare and initialize a `HashMap` named unsortedMap with some key-value pairs. In this example, the map has integer keys and string values.
  3. We declare an empty map named filteredMap to store the filtered key-value pairs.
  4. We define a set of specific keys that we want to filter the map by.
  5. We iterate over the original map entries using a for loop and check if each key matches one of the specified keys.
  6. We add the key-value pairs that meet the condition to the filteredMap.
  7. We print the filtered map to the console using the System.out.println function to verify the filtering.

Java Program

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

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");
        myMap.put(5, "five");

        // Declare an empty map to store the filtered key-value pairs
        Map<Integer, String> filteredMap = new HashMap<>();

        // Define the specific keys to filter by
        Set<Integer> keysToFilter = new HashSet<>();
        keysToFilter.add(1);
        keysToFilter.add(3);
        keysToFilter.add(5);

        // Iterate over the original map and filter based on the specific keys
        for (Map.Entry<Integer, String> entry : myMap.entrySet()) {
            if (keysToFilter.contains(entry.getKey())) {
                filteredMap.put(entry.getKey(), entry.getValue());
            }
        }

        // Print the filtered map
        System.out.println("Filtered Map by Specific Keys: " + filteredMap);
    }
}

Output

Filtered Map by Specific Keys: {1=one, 3=three, 5=five}

3 Filtering a Map with String Keys Based on Prefix

We can filter a map with string keys based on a specific prefix in Java by iterating over the map entries and adding key-value pairs that have keys starting with the given prefix to a new map.

For example,

  1. We start by importing the java.util.HashMap and java.util.Map classes, which provide the necessary functions and data structures for working with maps.
  2. We declare and initialize a `HashMap` named unsortedMap with some key-value pairs. In this example, the map has string keys and string values.
  3. We declare an empty map named filteredMap to store the filtered key-value pairs.
  4. We define a prefix string that we want to filter the map by.
  5. We iterate over the original map entries using a for loop and check if each key starts with the specified prefix.
  6. We add the key-value pairs that meet the condition to the filteredMap.
  7. We print the filtered map to the console using the System.out.println function to verify the filtering.

Java Program

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

public class Main {
    public static void main(String[] args) {
        // Declare and initialize a map
        Map<String, String> myMap = new HashMap<>();
        myMap.put("apple", "fruit");
        myMap.put("banana", "fruit");
        myMap.put("carrot", "vegetable");
        myMap.put("apricot", "fruit");
        myMap.put("blueberry", "fruit");

        // Declare an empty map to store the filtered key-value pairs
        Map<String, String> filteredMap = new HashMap<>();

        // Define the prefix to filter by
        String prefix = "ap";

        // Iterate over the original map and filter based on the prefix
        for (Map.Entry<String, String> entry : myMap.entrySet()) {
            if (entry.getKey().startsWith(prefix)) {
                filteredMap.put(entry.getKey(), entry.getValue());
            }
        }

        // Print the filtered map
        System.out.println("Filtered Map by Prefix: " + filteredMap);
    }
}

Output

Filtered Map by Prefix: {apple=fruit, apricot=fruit}

Summary

In this tutorial, we learned How to Filter a Map Based on Keys 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 ?