Spec-Zone.ru › OpenJDK 25

Класс AbstractSet<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractSet<E>
Параметры типа:
E - тип элементов, хранящихся в этом множестве
Все реализуемые интерфейсы:
Iterable<E>, Collection<E>, Set<E>
Прямые известные подклассы:
ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, TreeSet
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
Этот класс предоставляет каркасную реализацию интерфейса Set, чтобы свести к минимуму усилия, необходимые для реализации этого интерфейса.

Процесс реализации множества путем наследования от этого класса идентичен процессу реализации коллекции путем наследования от AbstractCollection, за исключением того, что все методы и конструкторы подклассов этого класса должны соблюдать дополнительные ограничения, накладываемые интерфейсом Set (например, метод add не должен разрешать добавление нескольких экземпляров объекта в множество).

Обратите внимание, что этот класс не переопределяет ни одну из реализаций класса AbstractCollection. Он лишь добавляет реализации для equals и hashCode.

Этот класс входит в состав Java Collections Framework.

С версии:
1.2
См. также:
  • Collection
  • AbstractCollection
  • Set

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

AbstractSet()
Модификатор Конструктор Описание
protected
Единственный конструктор.

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

Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этим множеством на равенство.
int hashCode()
Возвращает хеш-код этого множества.
boolean removeAll(Collection<?> c)
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция).

Методы, объявленные в классе AbstractCollection

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

Методы, объявленные в классе Object

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

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

parallelStream, removeIf, stream, toArray

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

forEach

Методы, объявленные в интерфейсе Set

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

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

AbstractSet

protected AbstractSet()
Единственный конструктор. (Для вызова конструкторами подклассов, обычно неявно.)

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

equals

public boolean equals(Object o)
Сравнивает указанный объект с этим множеством на равенство. Возвращает true, если заданный объект также является множеством, оба множества имеют одинаковый размер и каждый элемент заданного множества содержится в этом множестве. Это гарантирует, что метод equals корректно работает для различных реализаций интерфейса Set.

Эта реализация сначала проверяет, является ли указанный объект этим множеством; если да, возвращает true. Затем она проверяет, является ли указанный объект множеством того же размера, что и это множество; если нет, возвращает false. Если да, возвращает containsAll((Collection) o).

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

hashCode

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

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

Определено в:
hashCode в интерфейсе Collection<E>
Определено в:
hashCode в интерфейсе Set<E>
Переопределяет:
hashCode в классе Object
Возвращает:
хеш-код этого множества
См. также:
  • Object.equals(Object)
  • Set.equals(Object)

removeAll

public boolean removeAll(Collection<?> c)
Удаляет из этого множества все элементы, содержащиеся в указанной коллекции (необязательная операция). Если указанная коллекция также является множеством, эта операция фактически изменяет это множество так, что его значением становится асимметрическая разность множеств этих двух множеств.

Эта реализация определяет, какое из множеств — это множество или указанная коллекция — меньше, вызывая для каждого метод size. Если в этом множестве меньше элементов, реализация перебирает его, проверяя, содержится ли каждый возвращенный итератором элемент в указанной коллекции. Если содержится, он удаляется из этого множества методом remove итератора. Если в указанной коллекции меньше элементов, реализация перебирает ее и удаляет из этого множества каждый элемент, возвращенный итератором, используя метод remove этого множества.

Обратите внимание, что эта реализация выбросит исключение UnsupportedOperationException, если итератор, возвращенный методом iterator, не реализует метод remove.

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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