Spec-Zone.ru › OpenJDK 25

Класс 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()
Возвращает строковое представление этой коллекции.

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

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

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

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

Методы, объявленные в интерфейсе 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>
Требования к реализации:
Эта реализация возвращает size() == 0.
Возвращает:
true, если эта коллекция не содержит элементов

contains

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

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

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

containsAll

public boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
Определено в:
containsAll в интерфейсе Collection<E>
Требования к реализации:
Эта реализация перебирает указанную коллекцию, последовательно проверяя каждый возвращаемый итератором элемент на наличие в этой коллекции. Если все элементы содержатся в ней, возвращается true, в противном случае — false.
Параметры:
c - коллекция, наличие элементов которой в этой коллекции проверяется
Возвращает:
true, если эта коллекция содержит все элементы указанной коллекции
Выбрасывает:
ClassCastException - если типы одного или нескольких элементов указанной коллекции несовместимы с этой коллекцией (необязательно)
NullPointerException - если указанная коллекция содержит один или несколько элементов null, а эта коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null.
См. также:
  • contains(Object)

addAll

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

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

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

removeAll

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

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

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

retainAll

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

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

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

clear

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

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

Выбрасывает:
UnsupportedOperationException - если эта коллекция не поддерживает операцию clear

toString

public String toString()
Возвращает строковое представление этой коллекции. Строковое представление состоит из списка элементов коллекции в порядке их возврата итератором, заключенного в квадратные скобки ("[]"). Соседние элементы разделяются символами ", " (запятая и пробел). Элементы преобразуются в строки так же, как в String.valueOf(Object).
Переопределяет:
toString в классе 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/AbstractCollection.html

Spec-Zone.ru

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