范例180 - 高效的枚举元素映射
实例180 - 高效的枚举元素映射
心法领悟180:EnumMap类的应用。
命令模式是23种常见模式之一,它是一种行为模式,可以使用EnumMap类来实现。首先将各种不同的命令保存在一个枚举类型中,再将这个枚举类型作为EnumMap的键。然后使用接口来统一命令所对应的操作,将其实现作为值存入到EnumMap中,这样就实现了命令模式。
package com.mingrisoft.enummap; public enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
package com.mingrisoft.enummap; import static com.mingrisoft.enummap.Weekday.MONDAY; import static com.mingrisoft.enummap.Weekday.SATURDAY; import static com.mingrisoft.enummap.Weekday.SUNDAY; import java.util.EnumMap; public class EnumMapTest { public static void main(String[] args) { EnumMap<Weekday, String> weeks = new EnumMap<Weekday, String>(Weekday.class); weeks.put(MONDAY, "星期一"); weeks.put(SUNDAY, "星期日"); System.out.println("EnumMap中的键值对个数:" + weeks.size()); System.out.println("EnumMap中的键值对:" + weeks); System.out.println("EnumMap中是否包含键SATURADAY:" + weeks.containsKey(SATURDAY)); System.out.println("EnumMap中是否包含值星期日:" + weeks.containsValue("星期日")); weeks.remove(MONDAY); System.out.println("EnumMap中的键值对:" + weeks); System.out.println("EnumMap中键MONDAY对应的值:" + weeks.get(MONDAY)); } }
EnumMap中的键值对个数:2 EnumMap中的键值对:{MONDAY=星期一, SUNDAY=星期日} EnumMap中是否包含键SATURADAY:false EnumMap中是否包含值星期日:true EnumMap中的键值对:{SUNDAY=星期日} EnumMap中键MONDAY对应的值:null