Java EnumSet类

Java EnumSet类是专门用于枚举类型的Set实现。它继承自AbstractSet类并实现了Set接口。

EnumSet类层次结构

EnumSet类的层次结构如下图所示。

EnumSet类声明

让我们来看一下java.util.EnumSet类的声明。

  1. public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable

Java EnumSet类的方法

方法描述
static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)创建一个包含指定元素类型中的所有元素的枚举集合。
static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)从指定集合中创建一个初始化的枚举集合。
static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)创建一个具有指定元素类型的空枚举集合。
static <E extends Enum<E>> EnumSet<E> of(E e)创建一个最初包含指定元素的枚举集合。
static <E extends Enum<E>> EnumSet<E> range(E from, E to)创建一个最初包含指定元素的枚举集合。
EnumSet<E> clone()返回此集合的副本。

Java EnumSet示例

1. **import** java.util.*; 
2. **enum** days { 
3.  SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY 
4. } 
5. **public** **class** EnumSetExample { 
6.  **public** **static** **void** main(String[] args) { 
7.   Set<days> set = EnumSet.of(days.TUESDAY, days.WEDNESDAY); 
8.   // 遍历元素 
9.   Iterator<days> iter = set.iterator(); 
10.   **while** (iter.hasNext()) 
11.    System.out.println(iter.next()); 
12.  } 
13. } 

输出:

TUESDAY
WEDNESDAY

Java EnumSet示例: allOf()和noneOf()

1. **import** java.util.*; 
2. **enum** days { 
3.  SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY 
4. } 
5. **public** **class** EnumSetExample { 
6.  **public** **static** **void** main(String[] args) { 
7.   Set<days> set1 = EnumSet.allOf(days.**class**); 
8.    System.out.println("Week Days:"+set1); 
9.    Set<days> set2 = EnumSet.noneOf(days.**class**); 
10.    System.out.println("Week Days:"+set2);   
11.  } 
12. } 

输出:

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

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想