Java EnumSet 类



介绍

Java EnumSet 类是一个专门为枚举类型使用的 Set 实现。以下是关于 EnumSet 的重要要点:

  • EnumSet 中的所有元素都必须来自创建集合时显式或隐式指定的单个枚举类型。

  • EnumSet 在内部表示为位向量。

  • EnumSet 不是同步的。如果多个线程同时访问 EnumSet,并且至少一个线程修改了该集合,则应在外部进行同步。

类声明

以下是java.util.EnumSet类的声明:

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

类方法

序号 方法及描述
1 static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)

此方法创建一个包含指定元素类型中所有元素的枚举集。

2 EnumSet<E> clone()

此方法返回此集合的副本。

3 static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)

此方法创建一个与指定的枚举集具有相同元素类型的枚举集,最初包含此类型中未包含在指定集合中的所有元素。

4 static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)

此方法创建一个从指定集合初始化的枚举集。

5 static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)

此方法创建一个与指定的枚举集具有相同元素类型的枚举集,最初包含相同的元素(如果有)。

6 static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)

此方法创建一个具有指定元素类型的空枚举集。

7 static <E extends Enum<E>> EnumSet<E> of(E e)

此方法创建一个最初包含指定元素的枚举集。

8 static <E extends Enum<E>> EnumSet<E> range(E from, E to)

此方法创建一个最初包含由两个指定端点定义的范围内的所有元素的枚举集。

继承的方法

此类继承自以下类的方法:

  • java.util.AbstractSet
  • java.util.AbstractCollection
  • java.util.Object
  • java.util.Set

创建 EnumSet 示例

以下示例演示了 Java EnumSet of(E) 方法的使用,以填充 EnumSet 实例。我们创建了一个枚举 Numbers。然后使用枚举值创建一个 EnumSet 实例,并打印生成的 enumSet。

package com.tutorialspoint;

import java.util.EnumSet;

public class EnumSetDemo {

   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };

   public static void main(String[] args) {

      // create a set that contains an enum
      EnumSet<Numbers> set = EnumSet.of(Numbers.ONE);

      // print set
      System.out.println("Set:" + set);
   }
}

让我们编译并运行上述程序,这将产生以下结果:

Set:[ONE]
广告