sebastiandaschner blog
Mapping enum keys with EnumMaps
friday, january 19, 2018Here’s a type that has been around in the JDK for a while and that comes in handy when we want to define maps with enum types as keys: An EnumMap
is a such as specialized Map
.
We’ll create a map for a given enum:
public enum CoffeeType {
ESPRESSO, POUR_OVER, FRENCH_PRESS
}
The EnumMap
needs to be aware of the enum class at creation time:
Map<CoffeeType, String> favoriteCoffeeOrigins = new EnumMap<>(CoffeeType.class);
favoriteCoffeeOrigins.put(CoffeeType.ESPRESSO, "Ethiopia");
favoriteCoffeeOrigins.put(CoffeeType.POUR_OVER, "Colombia");
favoriteCoffeeOrigins.put(CoffeeType.FRENCH_PRESS, "Indonesia");
assertThat(favoriteCoffeeOrigins.get(CoffeeType.ESPRESSO)).isEqualTo("Ethiopia");
An EnumMap
is much more efficient compared to a HashMap
implementation.
All basic map operations of this Java implementation are executed in constant time.
This post was reposted from my newsletter issue 017.
Found the post useful? Subscribe to my newsletter for more free content, tips and tricks on IT & Java: