使用枚举映射
这是一种在JDK中存在很长时间的类型,当我们要定义以枚举类型作为键的映射时,这种类型会派上用场: EnumMap
是一种特殊的Map
。
我们将为给定的枚举创建一个映射:
public enum CoffeeType {ESPRESSO, POUR_OVER, FRENCH_PRESS
}
EnumMap
在创建时需要注意枚举类:
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");
与HashMap
实现相比, EnumMap
效率更高。 此Java实现的所有基本映射操作都在固定时间内执行。
我的时事通讯017重新发布了该帖子。
翻译自: https://www.javacodegeeks.com/2018/01/mapping-enum-keys-enummaps.html
使用枚举映射