In Java HashMap, we can iterate through its keys, values, and key/value mappings.
Example 1: Iterate through HashMap using the forEach loop
import java.util.HashMap; import java.util.Map.Entry; class Main { public static void main(String[] args) { // Creating a HashMap HashMap<String, String> languages = new HashMap<>(); languages.put("Java", "Enterprise"); languages.put("Python", "ML/AI"); languages.put("JavaScript", "Frontend"); System.out.println("HashMap: " + languages); // iterating through key/value mappings System.out.print("Entries: "); for(Entry<String, String> entry: languages.entrySet()) { System.out.print(entry); System.out.print(", "); } // iterating through keys System.out.print("\nKeys: "); for(String key: languages.keySet()) { System.out.print(key); System.out.print(", "); } // iterating through values System.out.print("\nValues: "); for(String value: languages.values()) { System.out.print(value); System.out.print(", "); } } } Output
HashMap: {Java=Enterprise, JavaScript=Frontend, Python=ML/AI} Entries: Java=Enterprise, JavaScript=Frontend, Python=ML/AI, Keys: Java, JavaScript, Python, Values: Enterprise, Frontend, ML/AI, In the above example, we have created a hashmap named languages. Here, we have used the forEach loop to iterate through the elements of the hashmap.
Notice that we are independently iterating through the keys, values, and key/value mappings.
- languages.entrySet() - returns the set view of all the entries
- languages.keySet() - returns the set view of all the keys
- languages.values() - returns the set view of all the values
Note: We have used the Map.Entry class. It is the nested class that returns a view of the map.
Example 2: Iterate through HashMap using iterator()
import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; class Main { public static void main(String[] args) { // create a HashMap HashMap<String, String> languages = new HashMap<>(); languages.put("Java", "Enterprise"); languages.put("Python", "ML/AI"); languages.put("JavaScript", "Frontend"); System.out.println("HashMap: " + languages); // create an object of Iterator Iterator<Entry<String, String>> iterate1 = languages.entrySet().iterator(); // iterate through key/value mappings System.out.print("Entries: "); while(iterate1.hasNext()) { System.out.print(iterate1.next()); System.out.print(", "); } // iterate through keys Iterator<String> iterate2 = languages.keySet().iterator(); System.out.print("\nKeys: "); while(iterate2.hasNext()) { System.out.print(iterate2.next()); System.out.print(", "); } // iterate through values Iterator<String> iterate3 = languages.values().iterator(); System.out.print("\nValues: "); while(iterate3.hasNext()) { System.out.print(iterate3.next()); System.out.print(", "); } } } Output
HashMap: {Java=Enterprise, JavaScript=Frontend, Python=ML/AI} Entries: Java=Enterprise, JavaScript=Frontend, Python=ML/AI, Keys: Java, JavaScript, Python, Values: Enterprise, Frontend, ML/AI, In the above example, we are iterating through keys, values, and key/value mappings of the hash map. We have used the iterator() method to iterate over the hashmap. Here,
- hasNext() - returns
trueif there is next element in the hashmap - next() - returns the next element of the hashmap
Note: We can also use the HashMap forEach() method to iterate over the hashmap.