Spec-Zone.ru › OpenJDK 8

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

Параметры типа:
E - тип элементов, поддерживаемых этим набором
Все суперинтерфейсы:
Collection<E>, Iterable<E>
Все известные дочерние интерфейсы:
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; некоторые реализации будут проявлять первое поведение, а некоторые - второе. В общем случае, попытка операции с неприемлемым элементом, завершение которой не приведет к вставке неприемлемого элемента в набор, может вызвать исключение или завершиться успешно, по выбору реализации. Такие исключения помечены как «необязательные» в спецификации для этого интерфейса.

Этот интерфейс является членом 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, если этот набор содержит все элементы указанной коллекции.

boolean equals(Object o)

Сравнивает указанный объект с этим набором на равенство.

int hashCode()

Возвращает значение хэш-кода для этого набора.

boolean isEmpty()

Возвращает true, если этот набор не содержит элементов.

Iterator<E> iterator()

Возвращает итератор по элементам в этом наборе.

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

Методы, унаследованные от интерфейса 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 такой, что (o==null ? e==null : o.equals(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 такой, что (e==null ? e2==null : e.equals(e2)). Если этот набор уже содержит элемент, вызов оставляет набор без изменений и возвращает false. В сочетании с ограничением на конструкторы это гарантирует, что наборы никогда не содержат дублирующих элементов.

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

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

remove

boolean remove(Object o)

Удаляет указанный элемент из этого набора, если он присутствует (необязательная операция). Более формально, удаляет элемент e такой, что (o==null ? e==null : o.equals(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 работает правильно в разных реализациях интерфейса множества.

Определено в:
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.DISTINCT. Реализации должны документировать отчёт о дополнительных характеристиках.

Определено в:
spliterator в интерфейсе Collection<E>
Определено в:
spliterator в интерфейсе Iterable<E>
Требования к реализации:
Стандартная реализация создает итератор поздней привязки из Iterator множества. Итератор наследует свойства быстрого отказа итератора множества.

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

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

© 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