- Given an EnumMap containing key value pairs in java.
- EnumMap is specialized Map implementation, to use enum as key(s).
- Enum maps are maintained in the natural order of their keys (the order in which the enum constants are declared).
- EnumMap will containing enum as its key.
- e.g EnumMap will contain key, enum of Human development index and value, the list of countries.
Iterate or loop through EnumMap in java
- Iterate or loop EnumMap using entrySet iterator.
- Iterate EnumMap using entrySet iterator.
- Iterate or loop EnumMap using forEach (java 8)
- Iterate EnumMap using forEach loop in java 8.
Program: loop or iterate through EnumMap in java
package org.learn.collection.map.emap;
import java.util.Arrays;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
enum HDI {
Very_High, High, Medium, Low
}
public class DemoEnumMap {
public static void main(String[] args) {
Map<HDI, List<String>> enumHDIAndCountries = new EnumMap<>(HDI.class);
enumHDIAndCountries.put(HDI.Very_High, Arrays.asList("Norway", "Australia", "Switzerland"));
enumHDIAndCountries.put(HDI.High, Arrays.asList("Belarus", "Russia", "Oman"));
enumHDIAndCountries.put(HDI.Medium, Arrays.asList("Botswana", "Moldova", "Egypt"));
enumHDIAndCountries.put(HDI.Low, Arrays.asList("Kenya", "Angola", "Nigeria"));
System.out.println("Method 1 - Iterate EnumMap: ");
demoIterateEnumMap(enumHDIAndCountries);
System.out.println("\nMethod 2 - Iterate EnumMap using java 8: ");
demoIterateEnumMapJava8(enumHDIAndCountries);
}
private static void demoIterateEnumMap(Map<HDI, List<String>> enumHDIAndCountries) {
for (Entry<HDI, List<String>> entry : enumHDIAndCountries.entrySet()) {
HDI vehicleNumber = entry.getKey();
List<String> owner = entry.getValue();
System.out.println("HDI:" + vehicleNumber + ", Countries:" + owner);
}
}
private static void demoIterateEnumMapJava8(Map<HDI, List<String>> enumHDIAndCountries) {
enumHDIAndCountries.forEach((key, value) -> {
System.out.println("HDI:" + key + ", Countries:" + value);
});
}
}
Output – iterate through EnumMap using entrySet or forEach in java
Method 1 - Iterate EnumMap:
HDI:Very_High, Countries:[Norway, Australia, Switzerland]
HDI:High, Countries:[Belarus, Russia, Oman]
HDI:Medium, Countries:[Botswana, Moldova, Egypt]
HDI:Low, Countries:[Kenya, Angola, Nigeria]
Method 2 - Iterate EnumMap using java 8:
HDI:Very_High, Countries:[Norway, Australia, Switzerland]
HDI:High, Countries:[Belarus, Russia, Oman]
HDI:Medium, Countries:[Botswana, Moldova, Egypt]
HDI:Low, Countries:[Kenya, Angola, Nigeria]