Spec-Zone.ru › OpenJDK 24

Класс AbstractCollection<E>

java.lang.Object
java.util.AbstractCollection<E>
Параметры типа:
E - тип элементов в этом наборе
Все реализуемые интерфейсы:
Iterable<E>, Collection<E>
Непосредственные известные подклассы:
AbstractList, AbstractQueue, AbstractSet, ArrayDeque, ConcurrentLinkedDeque
public abstract class AbstractCollection<E> extends Object implements Collection<E>
Этот класс предоставляет скелетную реализацию интерфейса Collection, чтобы минимизировать усилия, необходимые для реализации этого интерфейса.

Для реализации неизменяемого набора программисту необходимо только расширить этот класс и предоставить реализации методов iterator и size. (Итератор, возвращаемый методом iterator, должен реализовывать методы hasNext и next.)

Для реализации изменяемого набора программисту необходимо дополнительно переопределить метод add этого класса (в противном случае он будет выбрасывать исключение UnsupportedOperationException), и итератор, возвращаемый методом iterator, должен дополнительно реализовать метод remove.

Программист, как правило, должен предоставить конструктор без аргументов (пустой) и Collection конструктор, в соответствии с рекомендацией в спецификации интерфейса Collection.

Документация для каждого не абстрактного метода в этом классе подробно описывает его реализацию. Каждый из этих методов может быть переопределен, если реализуемый набор допускает более эффективную реализацию.

Этот класс является членом Java Collections Framework.

С момента:
1.2
См. также:
  • Collection

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

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

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

Модификатор и тип Метод Описание
boolean add(E e)
Обеспечивает, что этот набор содержит указанный элемент (необязательная операция).
boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанного набора в этот набор (необязательная операция).
void clear()
Удаляет все элементы из этого набора (необязательная операция).
boolean contains(Object o)
Возвращает true, если этот набор содержит указанный элемент.
boolean containsAll(Collection<?> c)
Возвращает true, если этот набор содержит все элементы из указанного набора.
boolean isEmpty()
Возвращает true, если этот набор не содержит элементов.
abstract Iterator<E> iterator()
Возвращает итератор по элементам, содержащимся в этом наборе.
boolean remove(Object o)
Удаляет одно вхождение указанного элемента из этого набора, если он присутствует (необязательная операция).
boolean removeAll(Collection<?> c)
Удаляет все элементы этого набора, которые также содержатся в указанном наборе (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет только элементы в этом наборе, которые содержатся в указанном наборе (необязательная операция).
Object[] toArray()
Возвращает массив, содержащий все элементы в этом наборе.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы в этом наборе; тип массива, возвращаемого в результате, соответствует типу указанного массива.
String toString()
Возвращает строковое представление этого набора.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray

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

forEach

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

AbstractCollection

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

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

iterator

public abstract Iterator<E> iterator()
Возвращает итератор по элементам, содержащимся в этом наборе.
Определено в:
iterator в интерфейсе Collection<E>
Определено в:
iterator в интерфейсе Iterable<E>
Возвращает:
итератор по элементам, содержащимся в этом наборе

isEmpty

public boolean isEmpty()
Возвращает true, если этот набор не содержит элементов.
Определено в:
isEmpty в интерфейсе Collection<E>
Требования к реализации:
Эта реализация возвращает true.
Возвращает:
true, если этот набор не содержит элементов

contains

public boolean contains(Object o)
Возвращает true, если этот набор содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда этот набор содержит по крайней мере один элемент e такой, что o.equals(e).
Определено в:
contains в интерфейсе Collection<E>
Требования к реализации:
Эта реализация перебирает элементы в наборе, проверяя каждый элемент на равенство с указанным элементом.
Параметры:
o - элемент, чье присутствие в этом наборе требуется проверить
Возвращает:
true, если этот набор содержит указанный элемент
Исключения:
ClassCastException - если тип указанного элемента несовместим с этим набором (необязательно)
NullPointerException - если указанный элемент null, а этот набор не допускает null-элементов (необязательно)

toArray

public Object[] toArray()
Возвращает массив, содержащий все элементы в этом наборе. Если этот набор гарантирует какой-либо порядок возврата элементов своим итератором, этот метод должен возвращать элементы в том же порядке. Тип компонента возвращаемого массива — Object.

Возвращаемый массив будет «безопасным» в том смысле, что ссылки на него не сохраняются в этом наборе. (Другими словами, этот метод должен выделить новый массив, даже если этот набор поддерживается массивом). Таким образом, вызывающая сторона свободна изменять возвращаемый массив.

Определено в:
toArray в интерфейсе Collection<E>
Требования к реализации:
Эта реализация возвращает массив, содержащий все элементы, возвращаемые итератором этого набора, в том же порядке, сохраненные в последовательных элементах массива, начиная с индекса 0. Длина возвращаемого массива равна числу элементов, возвращенных итератором, даже если размер этого набора изменяется во время итерации, как может произойти, если набор допускает одновременное изменение во время итерации. Метод size вызывается только в качестве оптимизационного подсказки; правильный результат возвращается даже если итератор возвращает другое количество элементов.

Этот метод эквивалентен:

 
 List<E> list = new ArrayList<E>(size());
 for (E e : this)
     list.add(e);
 return list.toArray();
 
Возвращает:
массив, тип компонента которого — Object, содержащий все элементы в этом наборе

toArray

public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этого набора; тип времени выполнения возвращаемого массива — указанный массив. Если набор помещается в указанный массив, он возвращается в нем. В противном случае выделяется новый массив с типом времени выполнения указанного массива и размером этого набора.

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

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

Определено в:
toArray в интерфейсе Collection<E>
Требования к реализации:
Эта реализация возвращает массив, содержащий все элементы, возвращаемые итератором этого набора, в том же порядке, сохраненные в последовательных элементах массива, начиная с индекса 0. Если количество элементов, возвращаемых итератором, слишком велико, чтобы поместиться в указанный массив, то элементы возвращаются в новом выделенном массиве с длиной, равной количеству элементов, возвращенных итератором, даже если размер этого набора изменяется во время итерации, как может произойти, если набор допускает одновременное изменение во время итерации. Метод size вызывается только в качестве оптимизационной подсказки; правильный результат возвращается даже если итератор возвращает другое количество элементов.

Этот метод эквивалентен:

 
 List<E> list = new ArrayList<E>(size());
 for (E e : this)
     list.add(e);
 return list.toArray(a);
 
Тип параметров:
T - тип компонента массива, содержащего набор
Параметры:
a - массив, в который будут помещены элементы этого набора, если он достаточно большой; в противном случае для этой цели выделяется новый массив того же типа времени выполнения.
Возвращает:
массив, содержащий все элементы этого набора
Исключения:
ArrayStoreException - если тип времени выполнения любого элемента в этом наборе не может быть присвоен типу времени выполнения компонента указанного массива
NullPointerException - если указанный массив null

add

public boolean add(E e)
Обеспечивает, что этот набор содержит указанный элемент (необязательная операция). Возвращает true, если этот набор изменился в результате вызова. (Возвращает false, если этот набор не допускает дубликатов и уже содержит указанный элемент.)

Наборы, которые поддерживают эту операцию, могут накладывать ограничения на то, какие элементы могут быть добавлены в этот набор. В частности, некоторые наборы откажутся от добавления null-элементов, а другие наложат ограничения на тип добавляемых элементов. Классы наборов должны четко указывать в своей документации любые ограничения на добавляемые элементы.

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

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

remove

public boolean remove(Object o)
Удаляет один экземпляр указанного элемента из этого набора, если он присутствует (необязательная операция). Более формально, удаляет элемент e такой, что o.equals(e), если этот набор содержит один или более таких элементов. Возвращает true, если этот набор содержал указанный элемент (или, что эквивалентно, если этот набор изменился в результате вызова).
Определено в:
remove в интерфейсе Collection<E>
Требования к реализации:
Эта реализация перебирает набор, ища указанный элемент. Если она находит элемент, она удаляет элемент из набора, используя метод remove итератора.

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

Параметры:
o - элемент, который нужно удалить из этого набора, если он присутствует
Возвращает:
true, если элемент был удален в результате этого вызова
Исключения:
UnsupportedOperationException - если операция remove не поддерживается этим набором
ClassCastException - если тип указанного элемента несовместим с этим набором (необязательно)
NullPointerException - если указанный элемент null, а этот набор не допускает null-элементов (необязательно)

containsAll

public boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы в указанной коллекции.
Specified by:
containsAll в интерфейсе Collection<E>
Implementation Requirements:
Эта реализация итерируется по указанной коллекции, проверяя каждый элемент, возвращённый итератором, в свою очередь, чтобы определить, содержится ли он в этой коллекции. Если все элементы содержатся true, то возвращается false.
Parameters:
c - коллекция, для проверки на включение в эту коллекцию
Returns:
true, если эта коллекция содержит все элементы в указанной коллекции
Throws:
ClassCastException - если типы одного или нескольких элементов в указанной коллекции несовместимы с этой коллекцией (необязательно)
NullPointerException - если указанная коллекция содержит один или несколько нулевых элементов, а эта коллекция не допускает нулевых элементов (необязательно), или если указанная коллекция равна null.
See Also:
  • contains(Object)

addAll

public boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанной коллекции в эту коллекцию (необязательная операция). Поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции. (Это подразумевает, что поведение этого вызова не определено, если указанная коллекция является этой коллекцией, и эта коллекция не пуста). Если у указанной коллекции определён порядок обхода, обработка её элементов, как правило, происходит в этом порядке.
Specified by:
addAll в интерфейсе Collection<E>
Implementation Requirements:
Эта реализация итерируется по указанной коллекции и добавляет каждый объект, возвращённый итератором, в эту коллекцию, по очереди.

Обратите внимание, что эта реализация будет выбрасывать UnsupportedOperationException, если add не переопределён (предполагая, что указанная коллекция не пуста).

Parameters:
c - коллекция, содержащая элементы, которые должны быть добавлены в эту коллекцию
Returns:
true, если эта коллекция изменилась в результате вызова
Throws:
UnsupportedOperationException - если операция addAll не поддерживается этой коллекцией
ClassCastException - если класс элемента указанной коллекции препятствует его добавлению в эту коллекцию
NullPointerException - если указанная коллекция содержит нулевой элемент, а эта коллекция не допускает нулевых элементов, или если указанная коллекция равна null
IllegalArgumentException - если какое-либо свойство элемента указанной коллекции препятствует его добавлению в эту коллекцию
IllegalStateException - если не все элементы могут быть добавлены в данный момент из-за ограничений вставки
See Also:
  • add(Object)

removeAll

public boolean removeAll(Collection<?> c)
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция). После возврата этого вызова эта коллекция не будет содержать общих элементов с указанной коллекцией.
Specified by:
removeAll в интерфейсе Collection<E>
Implementation Requirements:
Эта реализация итерируется по этой коллекции, проверяя каждый элемент, возвращённый итератором, в свою очередь, чтобы определить, содержится ли он в указанной коллекции. Если он содержится, он удаляется из этой коллекции с помощью метода remove итератора.

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

Parameters:
c - коллекция, содержащая элементы, которые должны быть удалены из этой коллекции
Returns:
true, если эта коллекция изменилась в результате вызова
Throws:
UnsupportedOperationException - если операция removeAll не поддерживается этой коллекцией
ClassCastException - если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно)
NullPointerException - если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не поддерживает нулевые элементы (необязательно) или если указанная коллекция равна null
See Also:
  • remove(Object)
  • contains(Object)

retainAll

public boolean retainAll(Collection<?> c)
Сохраняет только элементы этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все её элементы, которые не содержатся в указанной коллекции.
Specified by:
retainAll в интерфейсе Collection<E>
Implementation Requirements:
Эта реализация итерируется по этой коллекции, проверяя каждый элемент, возвращённый итератором, в свою очередь, чтобы определить, содержится ли он в указанной коллекции. Если он не содержится, он удаляется из этой коллекции с помощью метода remove итератора.

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

Parameters:
c - коллекция, содержащая элементы, которые должны быть сохранены в этой коллекции
Returns:
true, если эта коллекция изменилась в результате вызова
Throws:
UnsupportedOperationException - если операция retainAll не поддерживается этой коллекцией
ClassCastException - если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно)
NullPointerException - если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не допускает нулевых элементов (необязательно) или если указанная коллекция равна null
See Also:
  • remove(Object)
  • contains(Object)

clear

public void clear()
Удаляет все элементы из этой коллекции (необязательная операция). Коллекция будет пустой после возврата этого метода.
Specified by:
clear в интерфейсе Collection<E>
Implementation Requirements:
Эта реализация итерируется по этой коллекции, удаляя каждый элемент с помощью операции Iterator.remove. Большинство реализаций, вероятно, выберут переопределение этого метода для повышения эффективности.

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

Throws:
UnsupportedOperationException - если операция clear не поддерживается этой коллекцией

toString

public String toString()
Возвращает строковое представление этой коллекции. Строковое представление состоит из списка элементов коллекции в порядке, в котором они возвращаются её итератором, заключённым в квадратные скобки ("[]"). Смежные элементы разделяются символами ", " (запятая и пробел). Элементы преобразуются в строки с помощью String.valueOf(Object).
Overrides:
toString в классе Object
Returns:
строковое представление этой коллекции

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

Spec-Zone.ru

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