Интерфейс Set<E>

Параметры типа:
E - тип элементов, поддерживаемых этим множеством
Все суперинтерфейсы:
Collection<E>, Iterable<E>
Все известные подинтерфейсы:
EventSet, NavigableSet<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 Framework.

С момента:
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 на основе массивов и API на основе коллекций.

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

toArray

<T> T[] toArray(T[] a)

Возвращает массив, содержащий все элементы в этом наборе; тип времени выполнения возвращаемого массива — это тип времени выполнения указанного массива. Если набор помещается в указанный массив, он возвращается в нём. В противном случае выделяется новый массив с типом времени выполнения указанного массива и размером этого набора.

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

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

Как и метод toArray(), этот метод действует как мост между API на основе массивов и 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-элементов, а этот набор не допускает null-элементов, или если указанная коллекция равна 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.hashCode(), HashMap

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>
Требования к реализации:
По умолчанию реализация создаёт итератор поздней привязки из Iterator набора. Итератор наследует свойства быстрого отказа от итератора набора.

Созданный итератор 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)

Возвращает неизменяемый набор, содержащий три элемента. Подробнее см. Неизменяемые наборы.

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

of

static <E> Set<E> of(E e1,
                     E e2,
                     E e3,
                     E e4)

Возвращает неизменяемый набор, содержащий четыре элемента. Подробнее см. Неизменяемые наборы.

Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
Возвращает:
набор Set содержащий указанные элементы
Исключение:
IllegalArgumentException - если есть дублируемые элементы
NullPointerException - если элемент null
С:
9

of

static <E> Set<E> of(E e1,
                     E e2,
                     E e3,
                     E e4,
                     E e5)

Возвращает неизменяемый набор, содержащий пять элементов. Подробнее см. Неизменяемые наборы.

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

of

static <E> Set<E> of(E e1,
                     E e2,
                     E e3,
                     E e4,
                     E e5,
                     E e6)

Возвращает неизменяемый набор, содержащий шесть элементов. Подробнее см. Неизменяемые наборы.

Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
Возвращает:
набор Set содержащий указанные элементы
Исключение:
IllegalArgumentException - если есть дублируемые элементы
NullPointerException - если элемент null
С:
9

of

static <E> Set<E> of(E e1,
                     E e2,
                     E e3,
                     E e4,
                     E e5,
                     E e6,
                     E e7)

Возвращает неизменяемый набор, содержащий семь элементов. Подробнее см. Неизменяемые наборы.

Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
Возвращаемое значение:
множество Set, содержащее указанные элементы
Исключения:
IllegalArgumentException - если есть какие-либо дублирующиеся элементы
NullPointerException - если элемент является null
С тех пор как:
9

of

static <E> Set<E> of(E e1,
                     E e2,
                     E e3,
                     E e4,
                     E e5,
                     E e6,
                     E e7,
                     E e8)

Возвращает неизменяемое множество, содержащее восемь элементов. Подробнее см. Неизменяемые множества.

Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
Возвращаемое значение:
множество Set, содержащее указанные элементы
Исключения:
IllegalArgumentException - если есть какие-либо дублирующиеся элементы
NullPointerException - если элемент является null
С тех пор как:
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 - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
e9 - девятый элемент
Возвращаемое значение:
множество Set, содержащее указанные элементы
Исключения:
IllegalArgumentException - если есть какие-либо дублирующиеся элементы
NullPointerException - если элемент является null
С тех пор как:
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)

Возвращает неизменяемое множество, содержащее десять элементов. Подробнее см. Неизменяемые множества.

Параметры типа:
E - тип элемента Set
Параметры:
e1 - первый элемент
e2 - второй элемент
e3 - третий элемент
e4 - четвёртый элемент
e5 - пятый элемент
e6 - шестой элемент
e7 - седьмой элемент
e8 - восьмой элемент
e9 - девятый элемент
e10 - десятый элемент
Возвращаемое значение:
множество Set, содержащее указанные элементы
Исключения:
IllegalArgumentException - если есть какие-либо дублирующиеся элементы
NullPointerException - если элемент является null
С тех пор как:
9

of

@SafeVarargs
static <E> Set<E> of(E... elements)

Возвращает неизменяемое множество, содержащее любое количество элементов. Подробнее см. Неизменяемые множества.

Примечание API:
Этот метод также принимает один массив в качестве аргумента. Тип элемента возвращаемого множества будет типом компонентов массива, а размер множества будет равен длине массива. Для создания множества с одним элементом, который является массивом, сделайте следующее:
String[] array = ... ;
     Set<String[]> list = Set.<String[]>of(array);
Это вызовет метод Set.of(E) вместо этого.
Параметры типа:
E - тип элемента Set
Параметры:
elements - элементы, которые должны содержаться в множестве
Возвращаемое значение:
множество Set, содержащее указанные элементы
Исключения:
IllegalArgumentException - если есть какие-либо дублирующиеся элементы
NullPointerException - если элемент является null или если массив null
С тех пор как:
9

copyOf

static <E> Set<E> copyOf(Collection<? extends E> coll)

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

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

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html

Spec-Zone .ru
спецификации, руководства, описания, API