Spec-Zone.ru › OpenJDK 8

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

  • java.lang.Object
    • java.util.AbstractCollection<E>
      • java.util.AbstractSet<E>
        • java.util.EnumSet<E>
Все реализованные интерфейсы:
Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>

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

Специализированная реализация Set для использования с перечислимыми типами. Все элементы в множестве enum должны происходить из одного перечислимого типа, который указывается явно или неявно при создании множества. Множества enum внутренне представлены как битовые векторы. Это представление чрезвычайно компактно и эффективно. Производительность по памяти и времени этого класса должна быть достаточно хорошей, чтобы позволить его использование в качестве высококачественной, типизированной альтернативы традиционным int-базированным "битовым флагам". Даже массовые операции (такие как containsAll и retainAll) должны выполняться очень быстро, если их аргумент также является множеством enum.

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

Нулевые элементы не допускаются. Попытки вставить нулевой элемент приведут к выбросу NullPointerException. Попытки проверить наличие нулевого элемента или удалить его, однако, будут работать правильно.

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

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

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

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

С версии:
1.5
См. также:
EnumMap

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

Модификатор и тип Метод и описание
static <E extends Enum<E>>
EnumSet<E>
allOf(Class<E> elementType)

Создает множество enum, содержащее все элементы в указанном типе элемента.

EnumSet<E> clone()

Возвращает копию этого множества.

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

Создает множество enum с тем же типом элемента, что и указанное множество enum, изначально содержащее все элементы этого типа, которые не содержатся в указанном множестве.

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

Создает множество enum, инициализированное из указанной коллекции.

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

Создает множество enum с тем же типом элемента, что и указанное множество enum, изначально содержащее те же элементы (если таковые имеются).

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

Создает пустое множество enum с указанным типом элемента.

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

Создает множество enum, изначально содержащее указанный элемент.

static <E extends Enum<E>>
EnumSet<E>
of(E first, E... rest)

Создает множество enum, изначально содержащее указанные элементы.

static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2)

Создает множество enum, изначально содержащее указанные элементы.

static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3)

Создает множество enum, изначально содержащее указанные элементы.

static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3, E e4)

Создает множество enum, изначально содержащее указанные элементы.

static <E extends Enum<E>>
EnumSet<E>
of(E e1, E e2, E e3, E e4, E e5)

Создает множество enum, изначально содержащее указанные элементы.

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

Создает множество enum, изначально содержащее все элементы в диапазоне, определенном двумя указанными конечными точками.

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

equals, hashCode, removeAll

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

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

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

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

Методы, унаследованные от интерфейса java.util.Set

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

Методы, унаследованные от интерфейса java.util.Collection

parallelStream, removeIf, stream

Методы, унаследованные от интерфейса java.lang.Iterable

forEach

Методы

noneOf

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

Создает пустое множество enum с указанным типом элементов.

Параметры типа:
E - Класс элементов в множестве
Параметры:
elementType - Объект класса типа элемента для этого множества enum
Возвращает:
Пустое множество enum указанного типа.
Исключения:
NullPointerException - если elementType является null

allOf

public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)

Создает множество enum, содержащее все элементы указанного типа элемента.

Параметры типа:
E - Класс элементов в множестве
Параметры:
elementType - Объект класса типа элемента для этого множества enum
Возвращает:
Множество enum, содержащее все элементы указанного типа.
Исключения:
NullPointerException - если elementType является null

copyOf

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

Создает множество enum с тем же типом элементов, что и указанное множество enum, первоначально содержащее те же элементы (если таковые имеются).

Параметры типа:
E - Класс элементов в множестве
Параметры:
s - множество enum, из которого нужно инициализировать это множество enum
Возвращает:
Копия указанного множества enum.
Исключения:
NullPointerException - если s является null

copyOf

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

Создает множество enum, инициализированное из указанной коллекции. Если указанная коллекция является экземпляром EnumSet, этот статический фабричный метод ведет себя идентично copyOf(EnumSet). В противном случае указанная коллекция должна содержать хотя бы один элемент (для определения типа элемента нового множества enum).

Параметры типа:
E - Класс элементов в коллекции
Параметры:
c - коллекция, из которой нужно инициализировать это множество enum
Возвращает:
Множество enum, инициализированное из данной коллекции.
Исключения:
IllegalArgumentException - если c не является экземпляром EnumSet и не содержит элементов
NullPointerException - если c является null

complementOf

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

Создает множество enum с тем же типом элементов, что и указанное множество enum, первоначально содержащее все элементы этого типа, которые не содержатся в указанном множестве.

Параметры типа:
E - Класс элементов в множестве enum
Параметры:
s - множество enum, из дополнения которого нужно инициализировать это множество enum
Возвращает:
Дополнение указанного множества в этом множестве
Исключения:
NullPointerException - если s является null

of

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

Создает множество enum, первоначально содержащее указанный элемент. Существуют перегрузки этого метода для инициализации множества enum от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс указанного элемента и множества
Параметры:
e - элемент, который это множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанный элемент
Исключения:
NullPointerException - если e является null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1,
                                                E e2)

Создает множество enum, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества enum от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров является null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1,
                                                E e2,
                                                E e3)

Создает множество enum, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества enum от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров является null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1,
                                                E e2,
                                                E e3,
                                                E e4)

Создает множество enum, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества enum от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
e4 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров является null

of

public static <E extends Enum<E>> EnumSet<E> of(E e1,
                                                E e2,
                                                E e3,
                                                E e4,
                                                E e5)

Создает множество enum, первоначально содержащее указанные элементы. Существуют перегрузки этого метода для инициализации множества enum от одного до пяти элементов. Предоставляется шестая перегрузка, которая использует функцию varargs. Эта перегрузка может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
e1 - элемент, который это множество должно содержать изначально
e2 - другой элемент, который это множество должно содержать изначально
e3 - другой элемент, который это множество должно содержать изначально
e4 - другой элемент, который это множество должно содержать изначально
e5 - другой элемент, который это множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из параметров является null

of

@SafeVarargs
public static <E extends Enum<E>> EnumSet<E> of(E first,
                                                             E... rest)

Создает множество enum, первоначально содержащее указанные элементы. Этот фабричный метод, список параметров которого использует функцию varargs, может использоваться для создания множества enum, первоначально содержащего произвольное количество элементов, но, вероятно, будет работать медленнее, чем перегрузки, которые не используют varargs.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
first - элемент, который множество должно содержать изначально
rest - остальные элементы, которые множество должно содержать изначально
Возвращает:
множество enum, первоначально содержащее указанные элементы
Исключения:
NullPointerException - если любой из указанных элементов является null, или если rest является null

range

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

Создает множество enum, первоначально содержащее все элементы в диапазоне, определяемом двумя указанными конечными точками. Возвращаемое множество будет содержать сами конечные точки, которые могут быть идентичны, но не должны быть расположены в неправильном порядке.

Параметры типа:
E - Класс элементов параметров и множества
Параметры:
from - первый элемент в диапазоне
to - последний элемент в диапазоне
Возвращает:
множество enum, первоначально содержащее все элементы в диапазоне, определяемом двумя указанными конечными точками
Исключения:
NullPointerException - если from или to являются null
IllegalArgumentException - если from.compareTo(to) > 0

clone

public EnumSet<E> clone()

Возвращает копию этого множества.

Переопределяет:
clone в классе Object
Возвращает:
копию этого множества
См. также:
Cloneable

© 1993, 2020, 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