EnumMap
Java.util.EnumMap Example
In this example we will see how and when to use Java.util.EnumMap
. EnumMap
is used when we need to have keys of the map as enums
.
EnumMaps
are represented internally as arrays
. This representation is extremely compact and efficient. Enummaps
are maintained in the natural order of their keys (the order in which the enum constants are declared).
Lets see how to use them :
JavaEnumMapExample.java
package com.jcg.example; import java.util.EnumMap; import java.util.Map; /** * * @author anirudh * */ public class JavaEnumMapExample { public enum MealType{ BREAKFAST,LUNCH,SNACK,DINNER } public static void main(String[] args) { Map myMealMap = new EnumMap(MealType.class); //populate the map myMealMap.put(MealType.BREAKFAST,"Enjoy Milk and Eggs for breakfast!"); myMealMap.put(MealType.LUNCH,"Enjoy Chicken, Rice and bread for Lunch!"); myMealMap.put(MealType.SNACK,"How about an apple for the evening snack!"); myMealMap.put(MealType.DINNER,"Keep the dinner light, lets have some salad!"); System.out.println("Welcome to meal planner, we have suggestions for following meals : "); //print all the keys of enum map in sorted order System.out.println(myMealMap.keySet()); //We can get the value from enumType System.out.println(" Q: What should I have for lunch? "); System.out.println(" A: "+myMealMap.get(MealType.LUNCH)); System.out.println(" Q: What should I have for snack? "); System.out.println(" A: "+myMealMap.get(MealType.SNACK)); System.out.println(" Q: What should I have for dinner? "); System.out.println(" A: "+myMealMap.get(MealType.DINNER)); //Iterate over enumMap for (MealType mealType : myMealMap.keySet()) { System.out.println(myMealMap.get(mealType)); } System.out.println("*** Checking for concurrent modification exception! ***"); //Does not throw Concurrent modification Exception in enumMap for (MealType mealType : myMealMap.keySet()) { if(MealType.SNACK.equals(mealType)){ myMealMap.remove(MealType.SNACK); } } //map changed without throwing Concurrent modification Exception System.out.println(myMealMap); } }
Output:
Welcome to meal planner, we have suggestions for following meals : [BREAKFAST, LUNCH, SNACK, DINNER] Q: What should I have for lunch? A: Enjoy Chicken, Rice and bread for Lunch! Q: What should I have for snack? A: How about an apple for the evening snack! Q: What should I have for dinner? A: Keep the dinner light, lets have some salad! Enjoy Milk and Eggs for breakfast! Enjoy Chicken, Rice and bread for Lunch! How about an apple for the evening snack! Keep the dinner light, lets have some salad! *** Checking for concurrent modification exception! *** {BREAKFAST=Enjoy Milk and Eggs for breakfast!, LUNCH=Enjoy Chicken, Rice and bread for Lunch!, DINNER=Keep the dinner light, lets have some salad!}
In the example we saw that the enum
keys were printed in the order they were input. We also saw how we can retrieve the values of map
from enum
keys.
We also saw that enumMap
did not throw ConcurrentModifactionExcpetion
while trying to modify the map.
Download the Eclipse project of this tutorial:
So, in this example we saw how to use enumMap
in Java.
Download
You can download the full source code of this example here: JavaEnumMapExample.zip
You can download the full source code of this example here: JavaEnumMapExample.zip