Java EnumSet

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 com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * 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 com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * 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:[]

 

推荐好课