Spec-Zone.ru › OpenJDK 27

Класс 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(Set). Лучше всего сделать это при создании, чтобы предотвратить случайный несинхронизированный доступ:

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

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

Этот класс является частью Java Collections Framework.

Начиная с версии:
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)
Создаёт множество перечислений, изначально содержащее все элементы диапазона, заданного двумя указанными конечными элементами.

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

equals, hashCode, removeAll
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этим множеством на равенство.
int hashCode()
Возвращает значение хеш-кода этого множества.
boolean removeAll(Collection<?> c)
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция).

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

add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString
Модификатор и тип Метод Описание
boolean add(E e)
Гарантирует, что эта коллекция содержит указанный элемент (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в эту коллекцию (необязательная операция).
void clear()
Удаляет все элементы из этой коллекции (необязательная операция).
boolean contains(Object o)
Возвращает true, если эта коллекция содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean isEmpty()
Возвращает true, если эта коллекция не содержит элементов.
abstract Iterator<E> iterator()
Возвращает итератор по элементам этой коллекции.
boolean remove(Object o)
Удаляет один экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции (необязательная операция).
Object[] toArray()
Возвращает массив, содержащий все элементы этой коллекции.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой коллекции; тип во время выполнения возвращаемого массива совпадает с типом указанного массива.
String toString()
Возвращает строковое представление этой коллекции.

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

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс этого Object во время выполнения.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

parallelStream, removeIf, stream, toArray
Модификатор и тип Метод Описание
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream с этой коллекцией в качестве источника.
default boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция).
default Stream<E> stream()
Возвращает последовательный Stream с этой коллекцией в качестве источника.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.

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

forEach
Модификатор и тип Метод Описание
default void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение.

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

add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray
Модификатор и тип Метод Описание
boolean add(E e)
Добавляет указанный элемент в это множество, если он ещё не присутствует (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы указанной коллекции в это множество, если они ещё не присутствуют (необязательная операция).
void clear()
Удаляет все элементы из этого множества (необязательная операция).
boolean contains(Object o)
Возвращает true, если это множество содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если это множество содержит все элементы указанной коллекции.
boolean isEmpty()
Возвращает true, если это множество не содержит элементов.
Iterator<E> iterator()
Возвращает итератор по элементам этого множества.
boolean remove(Object o)
Удаляет указанный элемент из этого множества, если он присутствует (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этом множестве только те элементы, которые содержатся в указанной коллекции (необязательная операция).
int size()
Возвращает количество элементов в этом множестве (его мощность).
default Spliterator<E> spliterator()
Создаёт Spliterator для обхода элементов этого множества.
Object[] toArray()
Возвращает массив, содержащий все элементы этого множества.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого множества; тип во время выполнения возвращаемого массива совпадает с типом указанного массива.

Подробное описание методов

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)
Создаёт множество перечислений, изначально содержащее все элементы диапазона, заданного двумя указанными конечными элементами. Возвращаемое множество будет содержать сами конечные элементы; они могут совпадать, но должны быть указаны в правильном порядке.
Параметры типа:
E - Класс элементов-параметров и множества
Параметры:
from - первый элемент диапазона
to - последний элемент диапазона
Возвращает:
Множество перечислений, изначально содержащее все элементы диапазона, заданного двумя указанными конечными элементами
Выбрасывает:
NullPointerException - если from или to имеют значение null
IllegalArgumentException - если from.compareTo(to) > 0

clone

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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