EnumMap
实现Map接口,基于数组实现,用于存储key为枚举类型的键值对集合类。
其中K,V 使用双数组实现。Key为枚举类型。在枚举中,每个枚举对象对应一个ordinal唯一值,因此在寻址时候,可使用ordinal作为数组下标进行寻址,速度很快。效率比HashMap要高,且大多数基本操作是常数级。多线程不安全,可使用synchronizedMap包装器 支持多线程安全。集合内部的key按自然序排列,Key不能插入空。使用集合视图的迭代器迭代元素时,如果Map被其他线程修改了。不会抛出ConcurrentModificationException异常。因此集合视图迭代时不保证数据是一致的。EnumSet
专为枚举类型设计的抽象集合类。其中保存的元素必须是指定枚举类型的枚举值。
线程不安全、不能插入null。插入枚举元素按自然序排列【定义时的顺序】。内部以long类型的位向量存储枚举值,占用空间小;操作基于位运算,效率高、所有操作都是常数级。EnumSet有两个实现类,RegularEnumSet,JumboEnumSet。当使用EnumSet时,枚举值集合大于64的时候,创建的是JumboEnumSet,否则创建的是RegularEnumSet。郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。