Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API будет удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс этого Object во время выполнения.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция.
default boolean removeIf(Predicate<? super E> filter)
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция).
int size()
Возвращает количество элементов в этой коллекции.
default Spliterator<E> spliterator()
Создаёт Spliterator для элементов этой коллекции.
default Stream<E> stream()
Возвращает последовательный Stream, источником которого является эта коллекция.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator.

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

forEach
Модификатор и тип Метод Описание
default void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не выбросит исключение.

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

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

Spec-Zone.ru

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