Discuss / Java / EnumMap 感觉很鸡肋呀

EnumMap 感觉很鸡肋呀

Topic source

明明能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

public 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;
}
}

MMMMMI

#3 Created at ... [Delete] [Delete and Lock User]

只是个举了个使用例子罢了。

这个翻译器的例子里,map的value是纯常量存进去,这当然直接给枚举加个字段就可以解决

但有没有一种可能map更常用来存取变量呢,当value是一个运行中的变量的时候你怎么提前写在枚举字段里呢

当然enummap也确实用的不算多罢了,完全替换为hashmap也是ok的。enummap只不过因为key为枚举类,枚举对象恰好是唯一的,跟hashmap相比减少了根据key计算内部数组索引的步骤,直接使用枚举序数作为数组索引就可以了


  • 1

Reply