Thursday, July 4, 2024
HomeLanguagesJavaRemove an Entry using key from HashMap while Iterating over it

Remove an Entry using key from HashMap while Iterating over it

Given a HashMap and a key in Java, the task is to remove an entry from this HashMap using the key, while iterating over it.

Examples:

Input: HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}, key = 2
Output: {1=Geeks, 3=GeeksForGeeks}

Input: HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, key = 3
Output: {1=G, 2=e, 4=k, 5=s}
  • Using Java 7 and before:
    1. Get the HashMap and the Key
    2. Create an iterator to iterate over the HashMap using HashMap.iterate() method.
    3. Iterate over the HashMap using the Iterator.hasNext() method.
    4. While iterating, check for the key at that iteration to be equal to the key specified. The entry key of the Map can be obtained with the help of entry.getKey() method.
    5. If the key matches, remove the entry of that iteration from the HashMap using remove() method.
    6. The required entry has been successfully removed.

    Program:




    // Java program to remove an entry using key
    // from a HashMap while iterating over it
      
    import java.util.*;
      
    public class GFG {
        public static void main(String[] args)
        {
      
            // Create a HashMap
            HashMap<Integer, String>
                map = new HashMap<>();
      
            // Populate the HashMap
            map.put(1, "Geeks");
            map.put(2, "ForGeeks");
            map.put(3, "GeeksForGeeks");
      
            // Get the key to be removed
            int keyToBeRemoved = 2;
      
            // Print the initial HashMap
            System.out.println("Original HashMap: "
                               + map);
      
            // Get the iterator over the HashMap
            Iterator<Map.Entry<Integer, String> >
                iterator = map.entrySet().iterator();
      
            // Iterate over the HashMap
            while (iterator.hasNext()) {
      
                // Get the entry at this iteration
                Map.Entry<Integer, String>
                    entry
                    = iterator.next();
      
                // Check if this key is the required key
                if (keyToBeRemoved == entry.getKey()) {
      
                    // Remove this entry from HashMap
                    iterator.remove();
                }
            }
      
            // Print the modified HashMap
            System.out.println("Modified HashMap: "
                               + map);
        }
    }

    
    
    Output:

    Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}
    Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
    
  • Using Java 8 lambda expressions:
    1. Get the HashMap and the Key
    2. Get the entry set of this map using HashMap.entrySet() method.
    3. Using lambda expression, remove the entry from the map if the key is equal to the key specified. The entry key of the Map can be obtained with the help of entry.getKey() method.
    4. The required entry has been successfully removed.

    Program:




    // Java program to remove an entry using key
    // from a HashMap while iterating over it
      
    import java.util.*;
      
    public class GFG {
        public static void main(String[] args)
        {
      
            // Create a HashMap
            HashMap<Integer, String>
                map = new HashMap<>();
      
            // Populate the HashMap
            map.put(1, "Geeks");
            map.put(2, "ForGeeks");
            map.put(3, "GeeksForGeeks");
      
            // Get the key to be removed
            int keyToBeRemoved = 2;
      
            // Print the initial HashMap
            System.out.println("Original HashMap: "
                               + map);
      
            // Remove the specified entry from the Map
            map.entrySet()
                .removeIf(
                    entry -> (keyToBeRemoved == entry.getKey()));
      
            // Print the modified HashMap
            System.out.println("Modified HashMap: "
                               + map);
        }
    }

    
    
    Output:

    Original HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}
    Modified HashMap: {1=Geeks, 3=GeeksForGeeks}
    

Nokonwaba Nkukhwana
Experience as a skilled Java developer and proven expertise in using tools and technical developments to drive improvements throughout a entire software development life cycle. I have extensive industry and full life cycle experience in a java based environment, along with exceptional analytical, design and problem solving capabilities combined with excellent communication skills and ability to work alongside teams to define and refine new functionality. Currently working in springboot projects(microservices). Considering the fact that change is good, I am always keen to new challenges and growth to sharpen my skills.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments