Java EnumSet
精华
小牛编辑
199浏览
2023-03-14
1 什么是Java EnumSet
Java EnumSet类是用于枚举类型的专用Set实现。它继承AbstractSet类并实现Set接口。
2 Java EnumSet的层次结构
下图为EnumSet类的层次结构。
3 Java EnumSet的语法
public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable
4 Java EnumSet的方法
方法 | 描述 |
---|---|
static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType) | 用于创建一个枚举集,其中包含指定元素类型中的所有元素。 |
static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c) | 用于创建从指定集合初始化的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s) | 此方法创建一个与指定的枚举集具有相同元素类型的枚举集,最初包含相同的元素(如果有)。 |
static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) | 用于创建具有指定元素类型的空EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E e) | 用于创建最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E first, E... rest) | 此方法创建一个最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E e1, E e2) | 此方法创建一个最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3) | 此方法创建一个最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4) | 此方法创建一个最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5) | 此方法创建一个最初包含指定元素的EnumSet。 |
static <E extends Enum<E>> EnumSet<E> range(E from, E to) | 用于创建最初包含指定元素的EnumSet。 |
EnumSet<E> clone() | 用于返回此集合的副本。 |
static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s) | 此方法创建与指定的EnumSet具有相同元素类型的EnumSet,最初包含指定类型集中未包含的所有该类型的元素。 |
5 Java EnumSet的例子
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java EnumSet的例子
*/
import java.util.*;
enum days {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class Demo {
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());
}
}
输出结果为:
TUESDAY
WEDNESDAY
6 Java EnumSet的例子:allOf()和noneOf()
package cn.xnip;
/**
* 小牛知识库网: https://www.xnip.cn
*/
/**
* Java EnumSet的例子
*/
import java.util.*;
enum days {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class Demo {
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:[]