EnumMap

EnumMap<wbr style="line-height:25px">(1.5)<br style="line-height:25px"><wbr style="line-height:25px"><span style="color:#993300; line-height:25px">java.util.EnumMap</span><span style="color:#003366; line-height:25px">与枚举类型键一起使用的专用Map实现。枚举映射中</span><span style="color:#339966; line-height:25px">所有键</span><span style="color:#003366; line-height:25px">都必须来自</span><span style="color:#99cc00; line-height:25px">单个枚举类型</span><span style="color:#003366; line-height:25px">,该枚举类型在创建映射时显式或隐式地指定。</span><br style="line-height:25px"><span style="color:#000080; line-height:25px">枚举映射在内部表示为数组。此表示形式非常紧凑且高效<wbr style="line-height:25px">。</wbr></span><br style="line-height:25px"> 枚举映射根据其键的自然顺序来维护(该顺序是声明枚举常量的顺序)。<br style="line-height:25px"> 在集合视图(keySet()、entrySet()和values())所返回的迭代器中反映了这一点。<br style="line-height:25px"> 由集合视图返回的迭代器是弱一致的:它们不会抛出ConcurrentModificationException,<br style="line-height:25px"> 也不一定显示在迭代进行时发生的任何映射修改的效果。<br style="line-height:25px"> 不允许使用null键。试图插入null键将抛出NullPointerException。<br style="line-height:25px"> 但是,试图测试是否出现null键或移除null键将不会抛出异常。允许使用null值。<br style="line-height:25px"> 像大多数集合一样,EnumMap是不同步的。如果多个线程同时访问一个枚举映射,<br style="line-height:25px"> 并且至少有一个线程修改该映射,则此枚举映射在外部应该是同步的。这一般通过对自然封装该枚举映射的某个对象进行同步来完成。<br style="line-height:25px"> 如果不存在这样的对象,则应该使用Collections.synchronizedMap(java.util.Map)方法来“包装”该枚举。<br style="line-height:25px"> 最好在创建时完成这一操作,以防止意外的非同步访问:<br style="line-height:25px"><span style="color:#0000ff; line-height:25px">Map&lt;EnumKey,V&gt;m=Collections.synchronizedMap(newEnumMap(...));</span><br style="line-height:25px"> 实现注意事项:所有基本操作都在固定时间内执行。虽然并不保证,但它们很可能比其HashMap副本更快。<br style="line-height:25px"><span style="line-height:25px"><wbr style="line-height:25px">注意1</wbr></span><wbr style="line-height:25px">:不允许使用null键。试图插入null键将抛出NullPointerException<br style="line-height:25px"><span style="line-height:25px"><wbr style="line-height:25px">注意2</wbr></span><wbr style="line-height:25px">:EnumMap是不同步的,不是线程的。<br style="line-height:25px"><span style="line-height:25px"><wbr style="line-height:25px">注意3</wbr></span><wbr style="line-height:25px">:EnumMap与枚举类型键一起使用的专用Map实现。枚举映射中所有键都必须来自单个枚举类型,<br style="line-height:25px"> 该枚举类型在创建映射时显式或隐式地指定。枚举映射在内部表示为数组。此表示形式非常紧凑且高效。<br style="line-height:25px"> 枚举类型键的通过ordinal()返回的返回枚举常量的序数就是它所映射的值对象在数组中的下标。<br style="line-height:25px"><span style="line-height:25px"><wbr style="line-height:25px">注意4</wbr></span><wbr style="line-height:25px">:是有序的。迭代进行时返回的映射的顺序就是其枚举类型键在枚举声明中的位置顺序。</wbr></wbr></wbr></wbr></wbr></wbr>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值