Spec-Zone.ru › OpenJDK 8

Класс AbstractSet<E>

  • java.lang.Object
    • java.util.AbstractCollection<E>
      • java.util.AbstractSet<E>
Type Parameters:
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.

Since:
1.2
См. также:
Collection, AbstractCollection, Set

Конструкторы

Модификатор Конструктор и описание
protected AbstractSet()

Единственный конструктор.

Методы

Модификатор и тип Метод и описание
boolean equals(Object o)

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

int hashCode()

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

boolean removeAll(Collection<?> c)

Удаляет из этого набора все его элементы, содержащиеся в указанной коллекции (необязательная операция).

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

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

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

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

Методы, унаследованные от интерфейса java.util.Set

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

Методы, унаследованные от интерфейса java.util.Collection

parallelStream, removeIf, stream

Методы, унаследованные от интерфейса java.lang.Iterable

forEach

Конструкторы

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.hashCode(), HashMap

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, 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