Skip to content

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:

  1. Iterate over keys
  2. Iterate over values
  3. 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:

scores.forEach((key, value) ->{
        System.out.

println(key +" : "+value);
});

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.