EnumMap 感觉很鸡肋呀
Topic sourcepublic enum DayOfWeek {
MONDAY("1"),
TUESDAY("2"),
WEDNESDAY("3"),
THURSDAY("4"),
FRIDAY("5"),
SATURDAY("6"),
SUNDAY("7");
private String zh;
DayOfWeek(String s) {
this.zh = s;
}
}
只是个举了个使用例子罢了。
这个翻译器的例子里,map的value是纯常量存进去,这当然直接给枚举加个字段就可以解决
但有没有一种可能map更常用来存取变量呢,当value是一个运行中的变量的时候你怎么提前写在枚举字段里呢
当然enummap也确实用的不算多罢了,完全替换为hashmap也是ok的。enummap只不过因为key为枚举类,枚举对象恰好是唯一的,跟hashmap相比减少了根据key计算内部数组索引的步骤,直接使用枚举序数作为数组索引就可以了
- 1
两把刷子闯江湖
明明能Enum内部添加字段就可以的事,为啥要创建EnumMap做映射呢?
Map<DayOfWeek,String> enumMap = new EnumMap<DayOfWeek, String>(DayOfWeek.class);
enumMap.put(DayOfWeek.MONDAY,"星期一");
enumMap.put(DayOfWeek.TUESDAY,"星期二");
System.out.println(enumMap.containsValue("星期二"));
System.out.println(Arrays.toString(DayOfWeek.values()));
System.out.println(DayOfWeek.FRIDAY.name());
System.out.println(DayOfWeek.FRIDAY.toString());
System.out.println(DayOfWeek.valueOf("FRIDAY"));
System.out.println(Enum.valueOf(DayOfWeek.class, "MONDAY"));
true
[MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]
FRIDAY
FRIDAY
FRIDAY
MONDAY