枚举类集对于枚举的支持

Posted 王醒燕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举类集对于枚举的支持相关的知识,希望对你有一定的参考价值。

Java.util中添加了两个新类,EnumMapEnumSet来支持枚举类型。

5.EnumMap:枚举类型实例到值的映射

MapJava中的一个类,EnumMapMap的子类。Map(映射)是一个二元组的集合,它中的每个元素都是由<Key,value>两个属性组成,通过Key很容易找到对应的value

 1 import java.util.EnumMap;
 2 import java.util.Map;
 3 
 4 enum Color{红色,绿色,蓝色};
 5 public class EnumMapDemo
 6 {
 7     public static void main(String[] args)
 8     {
 9         EnumMap<Color,String> ep = new EnumMap<Color,String>(Color.class);//实例化对象,构造参数不能为空
10         ep.put(Color.红色, "RED");//一对<Key,value>映射
11         ep.put(Color.绿色, "GREEN");
12         ep.put(Color.蓝色,"BLUE");
13         for(Map.Entry<Color, String>me:ep.entrySet())
14         {
15             System.out.println(me.getKey()+"-->"+me.getValue());
16         }
17     }
18 }

其中,EntrySet()是定义在Map类中的一个方法,其作用是返回整个映射实例的集合。EntrySet()方法中的Set表示的含义是“集合”。

6.EnumSet:枚举类型集合操作(如交、并、补等)

Set是一个一元组集合,其包含一系列不可重复的数据。EnumSetSet的子类。Set可以理解为,只包含元素Key的集合。

 1 import java.util.EnumSet;
 2 import java.util.Iterator;
 3 
 4 enum Color{红色,绿色,蓝色};
 5 public class EnumSetDemo
 6 {
 7     public static void main(String[] args)
 8     {
 9         EnumSet<Color> es = EnumSet.allOf(Color.class);//将枚举全部内容设置到集合
10         Iterator<Color> iter = es.iterator();//指向枚举类型Color的迭代器
11         while(iter.hasNext())//判断集合中是否还有元素
12         {
13             System.out.println(iter.next());//遍历集合类的元素并输出
14         }
15     }
16 }

上述例子测试了EnumSet类的静态方法allOf()

 1 import java.util.EnumSet;
 2 import java.util.Iterator;
 3 
 4 enum Color{红色,绿色,蓝色};
 5 public class EnumSetDemo
 6 {
 7     public static void main(String[] args)
 8     {
 9         EnumSet<Color> es = EnumSet.noneOf(Color.class);//枚举类型的空集合
10         Iterator<Color> iter = es.iterator();//指向枚举类型Color的迭代器
11         while(iter.hasNext())
12         {
13             System.out.println(iter.next());//null,无输出
14         }
15     }
16 }

上述例子测试了EnumSet类的静态方法noneOf()

以上是关于枚举类集对于枚举的支持的主要内容,如果未能解决你的问题,请参考以下文章

枚举的其他应用:实现接口

COREJAVA核心概述-枚举

COREJAVA核心概述-枚举

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

Java中枚举的写法和用法

Spring Data MongoDB 是不是支持枚举?