EnumMap

Java.util.EnumMap Example

Photo of Anirudh BhatnagarAnirudh BhatnagarDecember 3rd, 2014Last Updated: December 3rd, 2014
0 157 2 minutes read

In this example we will see how and when to useJava.util.EnumMap.EnumMap is used when we need to have keys of the map asenums.

EnumMaps are represented internally asarrays. 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 mapmyMealMap.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 orderSystem.out.println(myMealMap.keySet());//We can get the value from enumTypeSystem.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 enumMapfor (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 enumMapfor (MealType mealType : myMealMap.keySet()) {if(MealType.SNACK.equals(mealType)){myMealMap.remove(MealType.SNACK);}}//map changed without throwing Concurrent modification ExceptionSystem.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 theenum keys were printed in the order they were input. We also saw how we can retrieve the values ofmap fromenum keys.

We also saw thatenumMap did not throwConcurrentModifactionExcpetion while trying to modify the map.

Download the Eclipse project of this tutorial:

So, in this example we saw how to useenumMap in Java.

Download
You can download the full source code of this example here:JavaEnumMapExample.zip
Do you want to know how to develop your skillset to become aJava Rockstar?
Subscribe to our newsletter to start Rockingright now!
To get you started we give you our best selling eBooks forFREE!
1. JPA Mini Book
2. JVM Troubleshooting Guide
3. JUnit Tutorial for Unit Testing
4. Java Annotations Tutorial
5. Java Interview Questions
6. Spring Interview Questions
7. Android UI Design
and many more ....
I agree to theTerms andPrivacy Policy

Thank you!

We will contact you soon.

Photo of Anirudh BhatnagarAnirudh BhatnagarDecember 3rd, 2014Last Updated: December 3rd, 2014
0 157 2 minutes read
Photo of Anirudh Bhatnagar

Anirudh Bhatnagar

Anirudh is a Java programmer with extensive experience in building Java/J2EE applications. He has always been fascinated by the new technologies and emerging trends in software development. He has been involved in propagating these changes and new technologies in his projects. He is an avid blogger and agile enthusiast who believes in writing clean and well tested code.
Subscribe
Notify of
guest
I agree to theTerms andPrivacy Policy
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.

I agree to theTerms andPrivacy Policy
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.