Spec-Zone.ru › OpenJDK 24

Класс EnumSet<E extends Enum<E>>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
java.util.EnumSet<E>
Параметры типа:
E - тип перечисления элементов, поддерживаемых этим множеством
Все реализованные интерфейсы:
Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>
public abstract sealed class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable
Специализированная реализация Set для использования с типами перечисления. Все элементы в множестве перечислений должны происходить из одного типа перечисления, который указывается явно или неявно при создании множества. Множества перечислений представлены внутри как битовые векторы. Это представление очень компактное и эффективное. Производительность этого класса по памяти и времени должна быть достаточно высокой, чтобы позволить его использование в качестве высококачественной, безопасной по типам альтернативы традиционным int-основанным "флагам-битам". Даже массовые операции (например, containsAll и retainAll) должны выполняться очень быстро, если их аргументом также является множество перечислений.

Итератор, возвращаемый методом iterator, просматривает элементы в их естественном порядке (в порядке объявления констант перечисления). Возвращаемый итератор является слабо согласованным: он никогда не выбросит ConcurrentModificationException, и он может или не может отражать результаты любых изменений в множестве, происходящих во время итерации.

Элементы со значением null не допускаются. Попытки вставить элемент со значением null вызовут исключение NullPointerException. Однако попытки проверить наличие элемента со значением null или удалить его будут работать должным образом.

Как и большинство реализаций коллекций, EnumSet не синхронизируется. Если несколько потоков одновременно обращаются к множеству перечислений, и по крайней мере один из потоков изменяет множество, оно должно быть синхронизировано внешним образом. Обычно это достигается синхронизацией на каком-либо объекте, естественным образом инкапсулирующем множество перечислений. Если такой объект не существует, множество должно быть "обёрнуто" с помощью метода Collections.synchronizedSet(java.util.Set<T>). Это лучше всего сделать на этапе создания, чтобы предотвратить случайный несинхронизированный доступ:

 Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
 

Примечание об реализации: все основные операции выполняются за константное время. Вероятно (хотя и не гарантируется), что они будут значительно быстрее, чем их аналоги из HashSet. Даже массовые операции выполняются за константное время, если их аргументом также является множество перечислений.

Этот класс является членом Java Collections Framework.

Since:
1.5
См. также:
  • EnumMap
  • Формат сериализации

Краткое описание методов

Модификатор и тип Метод Описание
static <E extends Enum<E>>
EnumSet<E>
allOf(Class<E> elementType)
Создает множество перечислений, содержащее все элементы указанного типа элементов.
EnumSet<E> clone()
Возвращает копию этого множества.
static <E extends Enum<E>>
EnumSet<E>
complementOf(EnumSet<E> s)
Создает множество перечислений с таким же типом элементов, как и указанное множество перечислений, изначально содержащее все элементы этого типа, которые не содержатся в указанном множестве.
static <E extends Enum<E>>
EnumSet<E>
copyOf(Collection<E> c)
Создает множество перечислений, инициализированное из указанной коллекции.
static <E extends Enum<E>>
EnumSet<E>
copyOf(EnumSet<E> s)
Создаёт множество перечислений с тем же типом элементов, что и указанное множество перечислений, изначально содержащее те же элементы (если таковые имеются).
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>
of(E e1, E e2)
Создаёт множество перечислений, изначально содержащее указанные элементы.
static <E extends Enum<E>>
EnumSet<E>
of(E first, E... rest)
Создаёт множество перечислений, изначально содержащее указанные элементы.
static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3)
Создаёт множество перечислений, изначально содержащее указанные элементы.
static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3, E e4)
Создаёт множество перечислений, изначально содержащее указанные элементы.
static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3, E e4, E e5)
Создаёт множество перечислений, изначально содержащее указанные элементы.
static <E extends Enum<E>>
EnumSet<E>
range(E from, E to)
Создаёт множество перечислений, изначально содержащее все элементы в диапазоне, определяемом двумя указанными конечными точками.

Методы, объявленные в классе java.util.AbstractSet

equals, hashCode, removeAll

Методы, объявленные в классе java.util.AbstractCollection

add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString

Методы, объявленные в классе java.lang.Object

finalize, getClass, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.util.Collection

parallelStream, removeIf, stream, toArray

Методы, объявленные в интерфейсе java.lang.Iterable

forEach

Методы, объявленные в интерфейсе java.util.Set

add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray

Краткое описание методов

noneOf

public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
Создает пустое множество перечислений с указанным типом элементов.
Параметры типа:
E - Класс элементов в множестве
Параметры:
elementType - Объект класса типа элемента для этого множества перечислений
Возвращает:
Пустое множество перечислений указанного типа.
Исключения:
NullPointerException - если elementType имеет значение null

allOf

public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
Создает множество перечислений, содержащее все элементы указанного типа элементов.
Параметры типа:
E - Класс элементов в множестве
Параметры:
elementType - Объект класса типа элемента для этого множества перечислений
Возвращает:
Множество перечислений, содержащее все элементы указанного типа.
Исключения:
NullPointerException - если elementType имеет значение null

copyOf

public static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
Создает множество перечислений с тем же типом элементов, что и указанное множество перечислений, первоначально содержащее те же элементы (если таковые имеются).
Параметры типа:
E - Класс элементов в множестве
Параметры:
s - множество перечислений, из которого необходимо инициализировать это множество перечислений
Возвращает:
Копию указанного множества перечислений.
Исключения:
NullPointerException - если s имеет значение null

copyOf

public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
Создает множество перечислений, инициализированное из указанной коллекции. Если указанная коллекция является экземпляром EnumSet, этот статический фабричный метод ведет себя идентично copyOf(EnumSet). В противном случае указанная коллекция должна содержать хотя бы один элемент (для определения типа элемента нового множества перечислений).
Параметры типа:
E - Класс элементов в коллекции
Параметры:
c - коллекция, из которой необходимо инициализировать это множество перечислений
Возвращает:
Множество перечислений, инициализированное из данной коллекции.
Исключения:
IllegalArgumentException - если c не является экземпляром EnumSet и не содержит элементов
NullPointerException - если c имеет значение null

complementOf

public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
Создает множество перечислений с тем же типом элементов, что и указанное множество перечислений, первоначально содержащее все элементы этого типа, которые не содержатся в указанном множестве.
Параметры типа:
E - Класс элементов в множестве перечислений
Параметры:
s - множество перечислений, из дополнения которого необходимо инициализировать это множество перечислений
Возвращает:
Дополнение указанного множества в этом множестве
Исключения:
NullPointerException - если s имеет значение null

of

public static <E extends Enum<E>> EnumSet<E> of(E e)
Создает множество перечислений, первоначально содержащее указанный элемент. Существуют перегрузки этого метода для инициализации множества перечислений от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс указанного элемента и множества
Параметры:
e - элемент, который это множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанный элемент
Исключения:
NullPointerException - если e имеет значение null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
Создает множество перечислений, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества перечислений от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров имеет значение null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
Создает множество перечислений, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества перечислений от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров имеет значение null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
Создает множество перечислений, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества перечислений от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
e4 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров имеет значение null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
Создает множество перечислений, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества перечислений от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
e4 - другой элемент, который это множество должно содержать изначально
e5 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров имеет значение null

of

@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
Создает множество перечислений, первоначально содержащее указанные элементы. Этот фабричный метод, список параметров которого использует функцию varargs, может использоваться для создания множества перечислений, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.
Параметры типа:
E - Класс элементов параметров и множества
Параметры:
first - элемент, который множество должно содержать изначально
rest - остальные элементы, которые множество должно содержать изначально
Возвращает:
множество перечислений, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из указанных элементов имеет значение null или если rest имеет значение null

range

public static <E extends Enum<E>> EnumSet<E> range(E from, E to)
Создаёт множество перечислений, изначально содержащее все элементы в диапазоне, определённом двумя указанными конечными точками. Возвращаемое множество будет содержать сами конечные точки, которые могут быть идентичны, но не должны быть упорядочены неправильно.
Type Parameters:
E - Класс элементов параметра и множества
Parameters:
from - первый элемент в диапазоне
to - последний элемент в диапазоне
Returns:
множество перечислений, изначально содержащее все элементы в диапазоне, определённом двумя указанными конечными точками
Throws:
NullPointerException - если from или to равны null
IllegalArgumentException - если from.compareTo(to) > 0

clone

public EnumSet<E> clone()
Возвращает копию этого множества.
Overrides:
clone в классе Object
Returns:
копия этого множества
See Also:
  • Cloneable

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/EnumSet.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API