实例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

 

你可能感兴趣的:(枚举)