Map Iteration Examples¶
A Map<K, V> cannot be iterated directly using an iterator like Collection because it stores key–value pairs, not
single elements.
However, Java provides three main ways to iterate:
- Iterate over keys
- Iterate over values
- Iterate over entries (recommended)
Below are complete examples.
1. Iterate Using keySet()¶
Iterates only through keys.
Example:
Map<String, Integer> scores = new HashMap<>();
scores.
put("Swapnil",90);
scores.
put("Kuwar",85);
for(
String key :scores.
keySet()){
System.out.
println(key);
}
Iterator<String> it = scores.keySet().iterator();
while(it.
hasNext()){
System.out.
println("Key: "+it.next());
}
2. Iterate Using values()¶
Iterates only through values.
Example:
for(Integer value :scores.
values()){
System.out.
println(value);
}
Iterator<Integer> valueIterator = scores.values().iterator();
while(valueIterator.
hasNext()){
System.out.
println("Value: "+valueIterator.next());
}
3. Iterate Using entrySet() (Best Way)¶
This provides both key and value at the same time.
Example:
for(Map.Entry<String, Integer> entry :scores.
entrySet()){
System.out.
println(entry.getKey() +" → "+entry.
getValue());
}
Using Iterator:
Iterator<Map.Entry<String, Integer>> entryIt = scores.entrySet().iterator();
while(entryIt.
hasNext()){
Map.Entry<String, Integer> entry = entryIt.next();
System.out.
println(entry.getKey() +" = "+entry.
getValue());
}
4. Using Java 8 forEach¶
Example:
5. Iterate Over Keys and Fetch Values Manually (Less Efficient)¶
Example:
for(String key :scores.
keySet()){
Integer value = scores.get(key);
System.out.
println(key +" => "+value);
}
Note:
- This is slower because
get()is called for each key. - Prefer
entrySet()for performance.
Which Iteration Method Should You Use?¶
| Method | Use Case |
|---|---|
| keySet() | When you only need keys |
| values() | When you only need values |
| entrySet() | Best choice for key + value |
| forEach | Simple and clean syntax |
Summary¶
- Map does not extend Collection, so it has its own iteration API.
entrySet()is the most efficient for key–value iteration.- Java provides Iterator support for all 3 views: keys, values, and entries.
- Enhanced for-loop and lambdas simplify iteration.