Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class EnumSet<E extends Enum<E>> extends AbstractSet<E> implements Cloneable, Serializable
Set
реализация для использования с перечислимыми типами. Все элементы в перечислимом наборе должны прибыть из единственного перечислимого типа, который определяется, явно или неявно, когда набор создается. Перечислимые наборы представляются внутренне как битовый векторы. Это представление чрезвычайно компактно и эффективно. Производительность пространства и времени этого класса должна быть достаточно хорошей, чтобы позволить его использование в качестве высококачественной, безопасной с точки зрения типов альтернативы традиционному int на основе "битовые флаги." Даже объемные операции (такие как containsAll и retainAll) должны работать очень быстро, если их параметром является также перечислимый набор. iterator, возвращенный методом iterator, пересекает элементы в их естественном порядке (порядок, в котором перечислимые константы объявляются). Возвращенный iterator является слабо непротиворечивым: это никогда не будет бросать ConcurrentModificationException
и это может или, возможно, не показывает эффекты любых модификаций к набору, которые происходят, в то время как итерация происходит.
Нулевые элементы не разрешаются. Попытки вставить нулевой элемент бросят NullPointerException
. Попытки протестировать на присутствие нулевого элемента или удалить каждый будет, однако, функционировать должным образом.
Как большинство реализаций набора, не синхронизируется EnumSet. Если многократные потоки получают доступ к перечислимому набору одновременно, и по крайней мере один из потоков изменяет набор, он должен синхронизироваться внешне. Это обычно выполняется, синхронизируясь на некотором объекте, который естественно инкапсулирует перечислимый набор. Если никакой такой объект не существует, набор должен быть "обернут", используя Collections.synchronizedSet(java.util.Set<T>)
метод. Это лучше всего делается во время создания, чтобы предотвратить случайный несинхронизируемый доступ:
Set<MyEnum> s = Collections.synchronizedSet(EnumSet.noneOf(MyEnum.class));
Примечание реализации: В постоянное время выполняются все основные операции. Они вероятны (хотя не гарантируемый) быть намного быстрее чем их HashSet
дубликаты. Даже объемные операции выполняются в постоянное время, если их параметром является также перечислимый набор.
Этот класс является элементом Платформы Наборов Java.
EnumMap
Модификатор и Тип | Метод и Описание |
---|---|
static <E extends Enum<E>> |
allOf(Class<E> elementType)
Создает перечислимый набор, содержащий все элементы в указанном типе элемента.
|
EnumSet<E> |
clone()
Возвращает копию этого набора.
|
static <E extends Enum<E>> |
complementOf(EnumSet<E> s)
Создает перечислимый набор с тем же самым типом элемента как указанный перечислимый набор, первоначально содержащий все элементы этого типа, которые не содержатся в указанном наборе.
|
static <E extends Enum<E>> |
copyOf(Collection<E> c)
Создает перечислимый набор, инициализированный из указанного набора.
|
static <E extends Enum<E>> |
copyOf(EnumSet<E> s)
Создает перечислимый набор с тем же самым типом элемента как указанный перечислимый набор, первоначально содержащий те же самые элементы (если любой).
|
static <E extends Enum<E>> |
noneOf(Class<E> elementType)
Создает пустой перечислимый набор с указанным типом элемента.
|
static <E extends Enum<E>> |
of(E e)
Создает перечислимый набор, первоначально содержащий указанный элемент.
|
static <E extends Enum<E>> |
of(E first, E... rest)
Создает перечислимый набор, первоначально содержащий указанные элементы.
|
static <E extends Enum<E>> |
of(E e1, E e2)
Создает перечислимый набор, первоначально содержащий указанные элементы.
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3)
Создает перечислимый набор, первоначально содержащий указанные элементы.
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3, E e4)
Создает перечислимый набор, первоначально содержащий указанные элементы.
|
static <E extends Enum<E>> |
of(E e1, E e2, E e3, E e4, E e5)
Создает перечислимый набор, первоначально содержащий указанные элементы.
|
static <E extends Enum<E>> |
range(E from, E to)
Создает перечислимый набор, первоначально содержащий все элементы в диапазоне, определенном двумя указанными конечными точками.
|
equals, hashCode, removeAll
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, retainAll, size, toArray, toArray, toString
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType)
elementType
- объект класса элемента вводит для этого перечислимого набораNullPointerException
- если elementType является нулемpublic static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
elementType
- объект класса элемента вводит для этого перечислимого набораNullPointerException
- если elementType является нулемpublic static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> s)
s
- перечислимый набор, от которого можно инициализировать этот перечислимый наборNullPointerException
- если s является нулемpublic static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c)
copyOf(EnumSet)
. Иначе, указанный набор должен содержать по крайней мере один элемент (чтобы определить тип элемента нового перечислимого набора).c
- набор, от которого можно инициализировать этот перечислимый наборIllegalArgumentException
- если c не является экземпляром EnumSet и не содержит элементовNullPointerException
- если c является нулемpublic static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s)
s
- перечислимый набор тот, от чей дополнения, чтобы инициализировать этот перечислимый наборNullPointerException
- если s является нулемpublic static <E extends Enum<E>> EnumSet<E> of(E e)
e
- элемент, который этот набор должен содержать первоначальноNullPointerException
- если e является нулемpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2)
e1
- элемент, который этот набор должен содержать первоначальноe2
- другой элемент, который этот набор должен содержать первоначальноNullPointerException
- если какие-либо параметры являются нулемpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3)
e1
- элемент, который этот набор должен содержать первоначальноe2
- другой элемент, который этот набор должен содержать первоначальноe3
- другой элемент, который этот набор должен содержать первоначальноNullPointerException
- если какие-либо параметры являются нулемpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4)
e1
- элемент, который этот набор должен содержать первоначальноe2
- другой элемент, который этот набор должен содержать первоначальноe3
- другой элемент, который этот набор должен содержать первоначальноe4
- другой элемент, который этот набор должен содержать первоначальноNullPointerException
- если какие-либо параметры являются нулемpublic static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5)
e1
- элемент, который этот набор должен содержать первоначальноe2
- другой элемент, который этот набор должен содержать первоначальноe3
- другой элемент, который этот набор должен содержать первоначальноe4
- другой элемент, который этот набор должен содержать первоначальноe5
- другой элемент, который этот набор должен содержать первоначальноNullPointerException
- если какие-либо параметры являются нулем@SafeVarargs public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest)
first
- элемент, который набор должен содержать первоначальноrest
- остающиеся элементы набор должны содержать первоначальноNullPointerException
- если какой-либо из указанных элементов является нулем, или если rest является нулемpublic static <E extends Enum<E>> EnumSet<E> range(E from, E to)
from
- первый элемент в диапазонеto
- последний элемент в диапазонеNullPointerException
- если from
или to
нульIllegalArgumentException
- если from.compareTo(to) > 0
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.