Spec-Zone.ru › OpenJDK 24

Интерфейс Set

Параметры типа:
E - тип элементов, хранимых в этом наборе
Все суперинтерфейсы:
Collection<E>, Iterable<E>
Все известные подинтерфейсы:
EventSet, NavigableSet<E>, SequencedSet<E>, SortedSet<E>
Все известные реализующие классы:
AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet
public interface Set<E> extends Collection<E>
Коллекция, которая не содержит дублирующих элементов. Более формально, множества не содержат пары элементов e1 и e2, таких что e1.equals(e2), и не более одного нулевого элемента. Как следует из названия, этот интерфейс моделирует абстракцию математического множества.

Интерфейс Set накладывает дополнительные условия, помимо тех, которые унаследованы от интерфейса Collection, на контракты всех конструкторов и на контракты методов add, equals и hashCode. Декларации других унаследованных методов также включены сюда для удобства. (Спецификации, сопровождающие эти декларации, адаптированы к интерфейсу Set, но они не содержат никаких дополнительных условий.)

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

Примечание: необходимо проявлять особую осторожность, если в качестве элементов множества используются изменяемые объекты. Поведение множества не определено, если значение объекта изменяется таким образом, что влияет на equals сравнения, пока объект является элементом множества. Специальным случаем этого запрета является то, что множество не может содержать себя в качестве элемента.

Некоторые реализации множеств имеют ограничения на элементы, которые они могут содержать. Например, некоторые реализации запрещают нулевые элементы, а некоторые имеют ограничения на типы своих элементов. Попытка добавить недопустимый элемент вызывает неконтролируемую ошибку, обычно NullPointerException или ClassCastException. Попытка запросить наличие недопустимого элемента может вызвать ошибку или просто вернуть false; некоторые реализации будут проявлять первое поведение, а некоторые — второе. Более общим образом, попытка операции над недопустимым элементом, завершение которой не приведет к вставке недопустимого элемента в множество, может вызвать исключение или может выполниться успешно, по выбору реализации. Такие исключения помечены как «необязательные» в спецификации для этого интерфейса.

Неизменяемые множества

Статические фабричные методы Set.of и Set.copyOf предоставляют удобный способ создания неизменяемых множеств. Множества Set, созданные этими методами, имеют следующие характеристики:

  • Они являются неизменяемыми. Элементы не могут быть добавлены или удалены. Вызов любого метода-мутатора множества всегда приведет к тому, что будет брошено UnsupportedOperationException. Однако, если сами содержащиеся элементы изменяемы, это может привести к тому, что множество будет вести себя несогласованно или его содержимое будет казаться изменяющимся.
  • Они не допускают null элементы. Попытки создать их с null элементами приводят к NullPointerException.
  • Они сериализуемы, если все элементы сериализуемы.
  • Они отклоняют дублирующие элементы во время создания. Дублирующие элементы, переданные в фабричный метод, приводят к IllegalArgumentException.
  • Порядок итерации элементов множества не определен и может быть изменен.
  • Они являются значение-ориентированными. Программисты должны рассматривать эквивалентные по значению экземпляры как взаимозаменяемые и не должны использовать их для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущих выпусках синхронизация может быть нарушена. Вызывающие методы не должны делать никаких предположений об идентичности возвращаемых экземпляров. Фабрики свободны создавать новые экземпляры или повторно использовать существующие.
  • Они сериализуются так, как указано на странице Сериализованная форма.

Этот интерфейс является членом фреймворка Java Collections.

C момента:
1.2
См. также:
  • Collection
  • List
  • SortedSet
  • HashSet
  • TreeSet
  • AbstractSet
  • Collections.singleton(java.lang.Object)
  • Collections.EMPTY_SET

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

Модификатор и тип Метод Описание
boolean add(E e)
Добавляет указанный элемент в этот набор, если он ещё не присутствует (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанного набора в этот набор, если они ещё не присутствуют (необязательная операция).
void clear()
Удаляет все элементы из этого набора (необязательная операция).
boolean contains(Object o)
Возвращает значение true, если этот набор содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает значение true, если этот набор содержит все элементы указанного набора.
static <E> Set<E> copyOf(Collection<? extends E> coll)
Возвращает неизменяемый набор содержащий элементы заданного набора.
boolean equals(Object o)
Сравнивает указанный объект с этим набором на равенство.
int hashCode()
Возвращает хэш-код для этого набора.
boolean isEmpty()
Возвращает значение true, если этот набор не содержит элементов.
Iterator<E> iterator()
Возвращает итератор по элементам в этом наборе.
static <E> Set<E> of()
Возвращает неизменяемый набор, содержащий ноль элементов.
static <E> Set<E> of(E e1)
Возвращает неизменяемый набор, содержащий один элемент.
static <E> Set<E> of(E... elements)
Возвращает неизменяемый набор, содержащий произвольное количество элементов.
static <E> Set<E> of(E e1, E e2)
Возвращает неизменяемый набор, содержащий два элемента.
static <E> Set<E> of(E e1, E e2, E e3)
Возвращает неизменяемый набор, содержащий три элемента.
static <E> Set<E> of(E e1, E e2, E e3, E e4)
Возвращает неизменяемый набор, содержащий четыре элемента.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5)
Возвращает неизменяемый набор, содержащий пять элементов.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
Возвращает неизменяемый набор, содержащий шесть элементов.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
Возвращает неизменяемый набор, содержащий семь элементов.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
Возвращает неизменяемый набор, содержащий восемь элементов.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
Возвращает неизменяемый набор, содержащий девять элементов.
static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
Возвращает неизменяемый набор, содержащий десять элементов.
boolean remove(Object o)
Удаляет указанный элемент из этого набора, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет из этого набора все его элементы, которые содержатся в указанном наборе (необязательная операция).
boolean retainAll(Collection<?> c)
Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе (необязательная операция).
int size()
Возвращает количество элементов в этом наборе (его мощность).
default Spliterator<E> spliterator()
Создаёт Spliterator над элементами в этом наборе.
Object[] toArray()
Возвращает массив, содержащий все элементы в этом наборе.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы в этом наборе; тип возвращаемого массива соответствует типу заданного массива.

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

parallelStream, removeIf, stream, toArray

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

forEach

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

size

int size()
Возвращает количество элементов в этом множестве (его мощность). Если это множество содержит более чем Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.
Указано в:
size в интерфейсе Collection<E>
Возвращает:
количество элементов в этом множестве (его мощность)

isEmpty

boolean isEmpty()
Возвращает true, если это множество не содержит элементов.
Указано в:
isEmpty в интерфейсе Collection<E>
Возвращает:
true, если это множество не содержит элементов

contains

boolean contains(Object o)
Возвращает true, если это множество содержит указанный элемент. Более формально, возвращает true, если и только если это множество содержит элемент e, такой что Objects.equals(o, e).
Указано в:
contains в интерфейсе Collection<E>
Параметры:
o - элемент, присутствие которого в этом множестве требуется проверить
Возвращает:
true, если это множество содержит указанный элемент
Исключения:
ClassCastException - если тип указанного элемента несовместим с этим множеством (необязательно)
NullPointerException - если указанный элемент null, а это множество не допускает null-элементы (необязательно)

iterator

Iterator<E> iterator()
Возвращает итератор по элементам в этом множестве. Элементы возвращаются в произвольном порядке (если это множество не является экземпляром какого-либо класса, который предоставляет гарантию).
Указано в:
iterator в интерфейсе Collection<E>
Указано в:
iterator в интерфейсе Iterable<E>
Возвращает:
итератор по элементам в этом множестве

toArray

Object[] toArray()
Возвращает массив, содержащий все элементы этого множества. Если это множество гарантирует какой-либо порядок возвращаемых итератором элементов, этот метод должен вернуть элементы в том же порядке.

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

Этот метод действует как мост между основанными на массивах и основанными на коллекциях API.

Указано в:
toArray в интерфейсе Collection<E>
Возвращает:
массив, содержащий все элементы в этом множестве

toArray

<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы в этом множестве; тип выполнения возвращаемого массива — тип указанного массива. Если множество помещается в указанный массив, оно возвращается в нём. В противном случае выделяется новый массив с типом выполнения указанного массива и размером этого множества.

Если это множество помещается в указанный массив с избытком (т. е. массив имеет больше элементов, чем это множество), элемент в массиве, непосредственно следующий за концом множества, устанавливается в null. (Это полезно для определения длины этого множества *только* если вызывающая сторона знает, что это множество не содержит null-элементов.)

Если это множество гарантирует какой-либо порядок возвращаемых итератором элементов, этот метод должен вернуть элементы в том же порядке.

Как и метод toArray(), этот метод действует как мост между основанными на массивах и основанными на коллекциях API. Кроме того, этот метод позволяет точно управлять типом выполнения выходного массива и в некоторых случаях может использоваться для экономии расходов на выделение памяти.

Предположим, что x — это множество, известное тем, что содержит только строки. Следующий код может использоваться для выгрузки множества в новый выделенный массив String:

     String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) функционально идентично toArray().
Указано в:
toArray в интерфейсе Collection<E>
Типы параметров:
T - компонентный тип массива, содержащего коллекцию
Параметры:
a - массив, в который должны быть помещены элементы этого множества, если он достаточно большой; в противном случае для этой цели выделяется новый массив того же типа выполнения.
Возвращает:
массив, содержащий все элементы в этом множестве
Исключения:
ArrayStoreException - если тип выполнения указанного массива не является супертипом типа выполнения каждого элемента в этом множестве
NullPointerException - если указанный массив null

add

boolean add(E e)
Добавляет указанный элемент в это множество, если он ещё не присутствует (необязательная операция). Более формально, добавляет указанный элемент e в это множество, если множество не содержит элемент e2, такой что Objects.equals(e, e2). Если это множество уже содержит элемент, вызов оставляет множество неизменным и возвращает false. В сочетании с ограничением на конструкторы это гарантирует, что множества никогда не содержат дубликатов элементов.

Вышеуказанное условие не подразумевает, что множества должны принимать все элементы; множества могут отказаться добавлять определённый элемент, включая null, и выбросить исключение, как описано в спецификации для Collection.add. Отдельные реализации множеств должны чётко документировать любые ограничения на элементы, которые они могут содержать.

Указано в:
add в интерфейсе Collection<E>
Параметры:
e - элемент, который необходимо добавить в это множество
Возвращает:
true, если это множество ещё не содержало указанный элемент
Исключения:
UnsupportedOperationException - если операция add не поддерживается этим множеством
ClassCastException - если класс указанного элемента препятствует его добавлению в это множество
NullPointerException - если указанный элемент null, а это множество не допускает null-элементы
IllegalArgumentException - если некоторые свойства указанного элемента препятствуют его добавлению в это множество

remove

boolean remove(Object o)
Удаляет указанный элемент из этого множества, если он присутствует (необязательная операция). Более формально, удаляет элемент e, такой что Objects.equals(o, e), если это множество содержит такой элемент. Возвращает true, если это множество содержало элемент (или, что эквивалентно, если это множество изменилось в результате вызова). (Это множество не будет содержать элемент после возвращения вызова.)
Указано в:
remove в интерфейсе Collection<E>
Параметры:
o - объект, который нужно удалить из этого множества, если он присутствует
Возвращает:
true, если это множество содержало указанный элемент
Исключения:
ClassCastException - если тип указанного элемента несовместим с этим множеством (необязательно)
NullPointerException - если указанный элемент null, а это множество не допускает null-элементы (необязательно)
UnsupportedOperationException - если операция remove не поддерживается этим множеством

containsAll

boolean containsAll(Collection<?> c)
Возвращает true, если это множество содержит все элементы указанной коллекции. Если указанная коллекция также является множеством, этот метод возвращает true, если она является *подмножеством* этого множества.
Указано в:
containsAll в интерфейсе Collection<E>
Параметры:
c - коллекция, содержимое которой проверяется на наличие в этом множестве
Возвращает:
true, если это множество содержит все элементы указанной коллекции
Исключения:
ClassCastException - если типы одного или нескольких элементов в указанной коллекции несовместимы с этим множеством (необязательно)
NullPointerException - если указанная коллекция содержит один или несколько null-элементов, а это множество не допускает null-элементы (необязательно), или если указанная коллекция null
См. также:
  • contains(Object)

addAll

boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанного набора в этот набор, если они ещё не присутствуют (дополнительная операция). Если указанный набор также является набором, операция addAll фактически изменяет этот набор так, что его значение является объединением двух наборов. Поведение этой операции не определено, если указанный набор изменяется во время выполнения операции.
Определено в:
addAll в интерфейсе Collection<E>
Параметры:
c - набор, содержащий элементы, которые должны быть добавлены в этот набор
Возвращает:
true, если этот набор изменился в результате вызова
Исключение:
UnsupportedOperationException - если операция addAll не поддерживается этим набором
ClassCastException - если класс элемента указанного набора препятствует его добавлению в этот набор
NullPointerException - если указанный набор содержит один или несколько нулевых элементов, а этот набор не допускает нулевых элементов, или если указанный набор равен null
IllegalArgumentException - если какое-либо свойство элемента указанного набора препятствует его добавлению в этот набор
См. также:
  • add(Object)

retainAll

boolean retainAll(Collection<?> c)
Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе (дополнительная операция). Другими словами, удаляет из этого набора все его элементы, которые не содержатся в указанном наборе. Если указанный набор также является набором, эта операция фактически изменяет этот набор так, что его значение является пересечением двух наборов.
Определено в:
retainAll в интерфейсе Collection<E>
Параметры:
c - набор, содержащий элементы, которые должны быть сохранены в этом наборе
Возвращает:
true, если этот набор изменился в результате вызова
Исключение:
UnsupportedOperationException - если операция retainAll не поддерживается этим набором
ClassCastException - если класс элемента этого набора несовместим с указанным набором (дополнительное)
NullPointerException - если этот набор содержит нулевой элемент, а указанный набор не допускает нулевых элементов (дополнительное), или если указанный набор равен null
См. также:
  • remove(Object)

removeAll

boolean removeAll(Collection<?> c)
Удаляет из этого набора все его элементы, которые содержатся в указанном наборе (дополнительная операция). Если указанный набор также является набором, эта операция фактически изменяет этот набор так, что его значение является симметричной разностью двух наборов.
Определено в:
removeAll в интерфейсе Collection<E>
Параметры:
c - набор, содержащий элементы, которые должны быть удалены из этого набора
Возвращает:
true, если этот набор изменился в результате вызова
Исключение:
UnsupportedOperationException - если операция removeAll не поддерживается этим набором
ClassCastException - если класс элемента этого набора несовместим с указанным набором (дополнительное)
NullPointerException - если этот набор содержит нулевой элемент, а указанный набор не допускает нулевых элементов (дополнительное), или если указанный набор равен null
См. также:
  • remove(Object)
  • contains(Object)

clear

void clear()
Удаляет все элементы из этого набора (дополнительная операция). Набор будет пустым после возвращения вызова.
Определено в:
clear в интерфейсе Collection<E>
Исключение:
UnsupportedOperationException - если метод clear не поддерживается этим набором

equals

boolean equals(Object o)
Сравнивает указанный объект с этим набором на равенство. Возвращает true, если указанный объект также является набором, у двух наборов одинаковый размер, и каждый член указанного набора содержится в этом наборе (или, что эквивалентно, каждый член этого набора содержится в указанном наборе). Это определение гарантирует, что метод equals работает правильно для различных реализаций интерфейса set.
Определено в:
equals в интерфейсе Collection<E>
Переопределяет:
equals в классе Object
Параметры:
o - объект, подлежащий сравнению на равенство с этим набором
Возвращает:
true, если указанный объект равен этому набору
См. также:
  • Object.equals(Object)
  • equals(Object)
  • List.equals(Object)

hashCode

int hashCode()
Возвращает значение хэш-кода для этого набора. Хэш-код набора определяется как сумма хэш-кодов элементов в наборе, где хэш-код null элемента равен нулю. Это гарантирует, что s1.equals(s2) подразумевает, что s1.hashCode()==s2.hashCode() для любых двух наборов s1 и s2, как требуется общим соглашением Object.hashCode().
Определено в:
hashCode в интерфейсе Collection<E>
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого набора
См. также:
  • Object.equals(Object)
  • equals(Object)

spliterator

default Spliterator<E> spliterator()
Создает Spliterator для элементов в этом наборе.

Spliterator сообщает Spliterator.DISTINCT. Реализации должны документировать сообщения об дополнительных характеристиках.

Определено в:
spliterator в интерфейсе Collection<E>
Определено в:
spliterator в интерфейсе Iterable<E>
Требования к реализации:
По умолчанию реализация создает отложенное связывание spliterator из Iterator набора. Spliterator наследует свойства fail-fast итератора набора.

Созданный Spliterator дополнительно сообщает Spliterator.SIZED.

Примечание к реализации:
Созданный Spliterator дополнительно сообщает Spliterator.SUBSIZED.
Возвращает:
Spliterator для элементов в этом наборе
С:
1.8

of

static <E> Set<E> of()
Возвращает неизменяемый набор, содержащий ноль элементов. Подробности см. в разделе Неизменяемые наборы.
Параметры типа:
E - тип элемента Set
Возвращает:
пустой Set
С:
9

of

static <E> Set<E> of(E e1)
Возвращает неизменяемый набор, содержащий один элемент. Подробности см. в разделе Неизменяемые наборы.
Параметры типа:
E - тип элемента Set
Параметры:
e1 - единственный элемент
Возвращает:
Set, содержащий указанный элемент
Исключение:
NullPointerException - если элемент null
С:
9

of

static <E> Set<E> of(E e1, E e2)
Возвращает неизменяемый набор, содержащий два элемента. Подробности см. в разделе Неизменяемые наборы.
Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
Возвращает:
Set, содержащий указанные элементы
Исключение:
IllegalArgumentException - если элементы являются дубликатами
NullPointerException - если элемент null
С:
9

of

static <E> Set<E> of(E e1, E e2, E e3)
Возвращает неизменяемое множество, содержащее три элемента. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4)
Возвращает неизменяемое множество, содержащее четыре элемента. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5)
Возвращает неизменяемое множество, содержащее пять элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6)
Возвращает неизменяемое множество, содержащее шесть элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7)
Возвращает неизменяемое множество, содержащее семь элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8)
Возвращает неизменяемое множество, содержащее восемь элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9)
Возвращает неизменяемое множество, содержащее девять элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
e9 - девятый элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

static <E> Set<E> of(E e1, E e2, E e3, E e4, E e5, E e6, E e7, E e8, E e9, E e10)
Возвращает неизменяемое множество, содержащее десять элементов. Подробности см. в Неизменяемые множества.
Type Parameters:
E - тип элемента Set
Parameters:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
e9 - девятый элемент
e10 - десятый элемент
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null
Since:
9

of

@SafeVarargs static <E> Set<E> of(E... elements)
Возвращает неизменяемое множество, содержащее произвольное количество элементов. Подробности см. в Неизменяемые множества.
API Note:
Этот метод также принимает один массив в качестве аргумента. Тип элемента результирующего множества будет типом компонентов массива, а размер множества будет равен длине массива. Для создания множества с одним элементом, который является массивом, выполните следующие действия:

     String[] array = ... ;
     Set<String[]> list = Set.<String[]>of(array);
 
Это вызовет метод Set.of(E) вместо этого.
Type Parameters:
E - тип элемента Set
Parameters:
elements - элементы, которые должны быть включены в множество
Returns:
неизменяемое множество, содержащее указанные элементы
Throws:
IllegalArgumentException - если есть какие-либо дублируемые элементы
NullPointerException - если элемент является null или если массив является null
Since:
9
END_OF_DOCUMENT_MARKER

copyOf

static <E> Set<E> copyOf(Collection<? extends E> coll)
Возвращает неизменяемое множество, содержащее элементы заданного набора. Заданный набор не должен быть null, и он не должен содержать null-элементов. Если заданный набор содержит дублирующие элементы, сохраняется произвольный элемент из дубликатов. Если заданный набор впоследствии будет изменён, возвращаемое множество не будет отражать эти изменения.
Замечание по реализации:
Если заданный набор является неизменяемым множеством, вызов copyOf обычно не создаёт копию.
Параметры типа:
E - тип элемента Set
Параметры:
coll - набор, из которого берутся элементы, не должен быть null
Возвращаемое значение:
множество, содержащее элементы заданного набора
Исключения:
NullPointerException - если coll равно null или содержит null-элементы
С тех пор:
10

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/Set.html

Spec-Zone.ru

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