【发布时间】:2018-11-09 10:52:41
【问题描述】:
EnumSet/EnumMap 可以通过指定定义的枚举来创建,以生成 set/map 实例,如下示例代码所示。
到目前为止,我读到,EnumSet/EnumMap 与 Set/Map 之间的区别在于,我们不能在 EnumSet/EnumMap 中添加指定的 Enum 以外的对象。
如果是这样的话,那么仅仅泛型化的 Set/Map 本身就足够了,不是吗?
请找到EnumSet/EnumMap及其各自的泛型Set/Map如下,
enum Value {
VALUE_1, VALUE_2, VALUE_3
};
public class Sample {
public static void main(String args[]) {
EnumSet<Value> enumSet = EnumSet.of(Value.VALUE_1);
Set<Value> enumGenerifiedSet = new HashSet<Value>();
enumGenerifiedSet.add(Value.VALUE_1);
EnumMap<Value, Integer> enumMap = new EnumMap<Value, Integer>(Value.class);
enumMap.put(Value.VALUE_1, 1);
Map<Value, Integer> enumGenerifiedMap = new HashMap<Value, Integer>();
enumGenerifiedMap.put(Value.VALUE_1, 1);
}
}
那么你能告诉我有什么需要EnumSet/EnumMap,即使我们能够创建泛型到定义的枚举的集合/映射?
提前致谢。
【问题讨论】:
标签: java oop enums set enumset