Working with key-value pairs is a core part of Java programming, and the Map interface is often your best friend when organizing that kind of data. But how do you loop through it efficiently?
In this post, we'll walk through multiple ways to iterate over a Map using a for-each loop—and when you might want to use each approach.
🧩 What Is a Map in Java?
A Map<K, V> in Java is a collection that maps keys to values. It's commonly implemented via HashMap, TreeMap, or LinkedHashMap. Here’s a basic example:
Map<String, String> map = new HashMap<>();
map.put("Name", "Md.");
map.put("Role", "Developer");
Now let’s explore ways to loop through this map.
1️⃣ Using entrySet() – The Most Efficient Way
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
✅ When to use:
- When you need both keys and values.
- Most efficient for accessing both in one loop.
2️⃣ Using keySet() – When You Only Need Keys
for (String key : map.keySet()) {
System.out.println("Key: " + key);
}
You can also access the value like this:
System.out.println("Value: " + map.get(key));
⚠️ Note:
This is slightly less efficient than entrySet() if you're fetching values inside the loop.
3️⃣ Using values() – When You Only Care About Values
for (String value : map.values()) {
System.out.println("Value: " + value);
}
Simple and to the point—great when keys don't matter.
4️⃣ Bonus: Java 8 forEach() with Lambda
map.forEach((key, value) -> System.out.println(key + " => " + value));
🎯 Why it's great:
- Concise and readable.
- Useful for stream-based processing or functional-style Java.
🧠Wrap-Up
Each way of iterating over a Map has its own use case:
- Use
entrySet()when you need keys and values. - Use
keySet()if values are optional or used sparingly. - Use
values()for value-only loops. - Use Java 8+
forEach()for clean and functional code.
Want to go deeper? We could explore how to sort maps, stream them, or even filter them by values. Just say the word!
Follow on LinkedIn
Comments
Post a Comment