Spec-Zone.ru › OpenJDK 21

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

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

клонировать

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

© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/EnumSet.html

Spec-Zone.ru

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