Класс EnumSet<E extends Enum<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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static <E extends Enum<E>> |
allOf |
Создаёт множество перечислений, содержащее все элементы указанного типа элементов. |
EnumSet |
clone() |
Возвращает копию этого множества. |
static <E extends Enum<E>> |
complementOf |
Создаёт множество перечислений с тем же типом элементов, что и у указанного множества перечислений, изначально содержащее все элементы этого типа, которые не входят в указанное множество. |
static <E extends Enum<E>> |
copyOf |
Создаёт множество перечислений, инициализированное указанной коллекцией. |
static <E extends Enum<E>> |
copyOf |
Создаёт множество перечислений с тем же типом элементов, что и у указанного множества перечислений, изначально содержащее те же элементы (если они есть). |
static <E extends Enum<E>> |
noneOf |
Создаёт пустое множество перечислений указанного типа элементов. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанный элемент. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанные элементы. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанные элементы. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанные элементы. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанные элементы. |
static <E extends Enum<E>> |
of |
Создаёт множество перечислений, изначально содержащее указанные элементы. |
static <E extends Enum<E>> |
range |
Создаёт множество перечислений, изначально содержащее все элементы диапазона, заданного двумя указанными конечными элементами. |
Методы, объявленные в классе AbstractSet
equals, hashCode, removeAll | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этим множеством на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этого множества. |
boolean |
removeAll |
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция). |
Методы, объявленные в классе AbstractCollection
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, toArray, toArray, toString | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Гарантирует, что эта коллекция содержит указанный элемент (необязательная операция). |
boolean |
addAll |
Добавляет все элементы указанной коллекции в эту коллекцию (необязательная операция). |
void |
clear() |
Удаляет все элементы из этой коллекции (необязательная операция). |
boolean |
contains |
Возвращает true, если эта коллекция содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если эта коллекция содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если эта коллекция не содержит элементов. |
abstract Iterator |
iterator() |
Возвращает итератор по элементам этой коллекции. |
boolean |
remove |
Удаляет один экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция). |
boolean |
retainAll |
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции (необязательная операция). |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этой коллекции. |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; тип во время выполнения возвращаемого массива совпадает с типом указанного массива. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Collection
parallelStream, removeIf, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
default Stream |
parallelStream() |
Возвращает, возможно, параллельный Stream с этой коллекцией в качестве источника. |
default boolean |
removeIf |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция). |
default Stream |
stream() |
Возвращает последовательный Stream с этой коллекцией в качестве источника. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Методы, объявленные в интерфейсе Iterable
forEach | Модификатор и тип | Метод | Описание |
|---|---|---|
default void |
forEach |
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение. |
Методы, объявленные в интерфейсе Set
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, spliterator, toArray, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Добавляет указанный элемент в это множество, если он ещё не присутствует (необязательная операция). |
boolean |
addAll |
Добавляет все элементы указанной коллекции в это множество, если они ещё не присутствуют (необязательная операция). |
void |
clear() |
Удаляет все элементы из этого множества (необязательная операция). |
boolean |
contains |
Возвращает true, если это множество содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если это множество содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если это множество не содержит элементов. |
Iterator |
iterator() |
Возвращает итератор по элементам этого множества. |
boolean |
remove |
Удаляет указанный элемент из этого множества, если он присутствует (необязательная операция). |
boolean |
retainAll |
Оставляет в этом множестве только те элементы, которые содержатся в указанной коллекции (необязательная операция). |
int |
size() |
Возвращает количество элементов в этом множестве (его мощность). |
default Spliterator |
spliterator() |
Создаёт Spliterator для обхода элементов этого множества. |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этого множества. |
<T> T[] |
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)
- Параметры типа:
E- Класс указанного элемента и множества- Параметры:
-
e- элемент, который изначально должен содержаться в этом множестве - Возвращает:
- Множество перечислений, изначально содержащее указанный элемент
- Выбрасывает:
-
NullPointerException- еслиeимеет значение null
of
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
- Параметры типа:
E- Класс элементов-параметров и множества- Параметры:
-
e1- элемент, который изначально должен содержаться в этом множестве -
e2- другой элемент, который изначально должен содержаться в этом множестве - Возвращает:
- Множество перечислений, изначально содержащее указанные элементы
- Выбрасывает:
-
NullPointerException- если какой-либо параметр имеет значение null
of
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
- Параметры типа:
E- Класс элементов-параметров и множества- Параметры:
-
e1- элемент, который изначально должен содержаться в этом множестве -
e2- другой элемент, который изначально должен содержаться в этом множестве -
e3- другой элемент, который изначально должен содержаться в этом множестве - Возвращает:
- Множество перечислений, изначально содержащее указанные элементы
- Выбрасывает:
-
NullPointerException- если какой-либо параметр имеет значение null
of
public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
- Параметры типа:
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)
- Параметры типа:
E- Класс элементов-параметров и множества- Параметры:
-
e1- элемент, который изначально должен содержаться в этом множестве -
e2- другой элемент, который изначально должен содержаться в этом множестве -
e3- другой элемент, который изначально должен содержаться в этом множестве -
e4- другой элемент, который изначально должен содержаться в этом множестве -
e5- другой элемент, который изначально должен содержаться в этом множестве - Возвращает:
- Множество перечислений, изначально содержащее указанные элементы
- Выбрасывает:
-
NullPointerException- если какой-либо параметр имеет значение null
of
@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
- Параметры типа:
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
© 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.