Spec-Zone.ru › OpenJDK 24

Класс 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)
Удаляет из этого множества все его элементы, которые содержатся в указанной коллекции (дополнительная операция).

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

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

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

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

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

parallelStream, removeIf, stream, toArray

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

forEach

Методы, объявленные в интерфейсе java.util.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
См. также:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

© 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/AbstractSet.html

Spec-Zone.ru

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