Java EnumSet类

本文概述

  • EnumSet类声明
  • Java EnumSet示例
  • Java EnumSet示例:allOf()和noneOf()
Java EnumSet类是用于枚举类型的专用Set实现。它继承AbstractSet类并实现Set接口。
EnumSet类层次结构
EnumSet类的层次结构在下图中给出。
Java EnumSet类

文章图片
EnumSet类声明 【Java EnumSet类】我们来看一下java.util.EnumSet类的声明。
public abstract class EnumSet< E extends Enum< E> > extends AbstractSet< E> implements Cloneable, Serializable

Java EnumSet类的方法
方法 描述
静态< E扩展Enum < E > > EnumSet < E> allOf(Class < E> elementType) 它用于创建一个枚举集, 其中包含指定元素类型中的所有元素。
静态< E扩展Enum < E > > EnumSet < E> copyOf(Collection < E> c) 它用于创建从指定集合初始化的枚举集。
静态< E扩展Enum < E > > EnumSet < E> noneOf(Class < E> elementType) 它用于创建具有指定元素类型的空枚举集。
静态< E扩展(E e)的Enum < E > > EnumSet < E> 它用于创建最初包含指定元素的枚举集。
静态< E扩展了Enum < E > > EnumSet < E> 范围(E从, E到) 它用于创建最初包含指定元素的枚举集。
EnumSet < E> clone() 它用于返回此集合的副本。
Java EnumSet示例
import java.util.*; enum days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } public class EnumSetExample { public static void main(String[] args) { Set< days> set = EnumSet.of(days.TUESDAY, days.WEDNESDAY); // Traversing elements Iterator< days> iter = set.iterator(); while (iter.hasNext()) System.out.println(iter.next()); } }

输出:
TUESDAY WEDNESDAY

Java EnumSet示例:allOf()和noneOf()
import java.util.*; enum days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } public class EnumSetExample { public static void main(String[] args) { Set< days> set1 = EnumSet.allOf(days.class); System.out.println("Week Days:"+set1); Set< days> set2 = EnumSet.noneOf(days.class); System.out.println("Week Days:"+set2); } }

输出:
Week Days:[SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY] Week Days:[]

    推荐阅读