Java EnumSet
Java EnumSet类是用于枚举类型的专用Set实现。它继承了AbstractSet类并实现Set接口。
EnumSet类层次结构
EnumSet类的层次结构如下图所示。
EnumSet类声明
让我们看看java.util.EnumSet类的声明。
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
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示例
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);
Iterator<days> iter = set.iterator();
while (iter.hasNext()) System.out.println(iter.next());
}
}
输出:
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:[]