EnumSet是一个设置接口为枚举类型。它扩展了AbstractSet并实现了Java中的Set Interface。
它是一个泛型类声明为:
public abstract class EnumSet>
这里,E指定元素。E必须扩展Enum,它强制要求元素必须是指定的枚举类型。
重要:
EnumSet类是Java Collections Framework的成员,并未同步。
这是一个高性能集合实现,比HashSet快得多。
每个EnumSet实例的所有元素必须是单个枚举类型的元素。
EnumSet类的例子:
// Java program to illustrate working of EnumSet and
// its functions.
import java.util.EnumSet;
enum Gfg
{
CODE, LEARN, CONTRIBUTE, QUIZ, MCQ
};
public class Example
{
public static void main(String[] args)
{
// create a set
EnumSet<Gfg> set1, set2, set3, set4;
// add elements
set1 = EnumSet.of(Gfg.QUIZ, Gfg.CONTRIBUTE, Gfg.LEARN, Gfg.CODE);
set2 = EnumSet.complementOf(set1);
set3 = EnumSet.allOf(Gfg.class);
set4 = EnumSet.range(Gfg.CODE, Gfg.CONTRIBUTE);
System.out.println("Set 1: " + set1);
System.out.println("Set 2: " + set2);
System.out.println("Set 3: " + set3);
System.out.println("Set 4: " + set4);
}
}
输出:
Set 1: [CODE, LEARN, CONTRIBUTE, QUIZ]
Set 2: [MCQ]
Set 3: [CODE, LEARN, CONTRIBUTE, QUIZ, MCQ]
Set 4: [CODE, LEARN, CONTRIBUTE]
EnumSet类的方法:
(E e1,E e2):创建最初包含指定元素的枚举集。
complementOf(EnumSet s):创建一个具有与指定枚举集相同元素类型的枚举集,最初包含此类型中未包含在指定集中的所有元素。
allOf(Class elementType):创建一个包含指定元素类型中所有元素的枚举集。
范围(E from,E to):创建最初包含由两个指定端点定义的范围内的所有元素的枚举集。