和枚举类相关的Map类——EnumMap

来源:互联网 发布:pdf合并拆分的软件 编辑:程序博客网 时间:2024/06/05 07:56

1 EnumMap类的简介

  • EnumMap是一个与枚举类一起使用的Map实现,EnumMap中所有key都必须是单个枚举类的枚举值。创建EnumMap时必须显式或隐式指定它对应的枚举类。
  • EnumMap在内部以数组形式保存,所以这种实现形式非常紧凑、高效。
  • EnumMap根据key的自然顺序(即枚举值在枚举类中的定义顺序)来维护来维护key-value对的次序。当程序通过keySet()、entrySet()、values()等方法来遍历EnumMap时即可看到这种顺序。
  • EnumMap不允许使用null作为key值,但允许使用null作为value。如果试图使用null作为key将抛出NullPointerException异常。如果仅仅只是查询是否包含值为null的key、或者仅仅只是使用删除值为null的key,都不会抛出异常。

2 代码示例

import java.util.*;enum Season{SPRING,SUMMER,FALL,WINTER}public class EnumMapTest{public static void main(String[] args){// 创建EnumMap对象,该EnumMap的所有key都是Season枚举类的枚举值EnumMap enumMap = new EnumMap(Season.class);enumMap.put(Season.SUMMER , "小荷才露尖尖角");enumMap.put(Season.SPRING , "满园春色关不住");System.out.println(enumMap);}}

3 运行结果

{SPRING=满园春色关不住, SUMMER=小荷才露尖尖角}

4 代码分析

上面程序中创建了一个EnumMap类,创建该EnumMap对象时指定它的key只能是Season枚举类的枚举值。如果向该EnumMap中添加两个key-value对后,这两个key-value对将会以Season枚举值的自然顺序排序。

2 0
原创粉丝点击