This post discusses basic methods to loop over Map in Java. Using following methods, you can loop over any Map implementation such as HashMap, LinkedHashMap, TreeMap etc…

Initialization

Lets initialize a HashMap containing country code and country name as below.

Java
// Initialize Hashmap
Map<String, String> countryCodes = new HashMap<String, String>();

// Load Hashmap
countryCodes.put("AUS", "Australia");
countryCodes.put("CAN", "Canada");
countryCodes.put("PAK", "Pakistan");
countryCodes.put("INR", "India");

Method 1: Iterate and remove value from Map

THIS IS THE ONLY METHOD WHICH CAN ITERATE OVER MAP AND REMOVE ELEMENT FROM UNDERLYING MAP INSTANCE WHILE ITERATION. All other methods can iterate over Map elements, but they does not allow removing element while iteration.

Java
//Method 1: Iterate and remove value from Map
Iterator<Map.Entry<String, String>> mapIterator = countryCodes.entrySet().iterator();
while (mapIterator.hasNext()) {
	Map.Entry<String, String> entry = mapIterator.next();
	System.out.println("Key: "+ entry.getKey() + " => Value : "+ entry.getValue());
	if(entry.getKey().equalsIgnoreCase("PAK"))
		mapIterator.remove();
}

// Console
/*
	Key: AUS => Value : Australia
	Key: INR => Value : India
	Key: PAK => Value : Pakistan
	Key: CAN => Value : Canada
*/

Method 2: Loop over key and values

If you need key and value of Map elements in your loop, then use this method.

Java
// Method 2: Loop over key and values
for(Map.Entry<String, String> entry : countryCodes.entrySet())
{
	System.out.println("Key: "+ entry.getKey() + " => Value : "+ entry.getValue());
}

// Console
/*
	Key: AUS => Value : Australia
	Key: INR => Value : India
	Key: CAN => Value : Canada
*/

Method 3: Loop over keys

This method iterate over keys of a HashMap.

Java
// Method 3: Loop over keys
for(String key : countryCodes.keySet())
{
	System.out.println("Key: "+ key);
}

// Console
/*
	Key: AUS
	Key: INR
	Key: CAN
*/

Method 4: Loop over values

Use this method if you need only value of Map elements in your loop.

Java
// Method 4: Loop over values
for(String value : countryCodes.values())
{
	System.out.println("Value: "+ value);
}

// Console
/*
	Value: Australia
	Value: India
	Value: Canada
*/

References

Map in Java
Iterator