Класс 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
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
add |
Гарантирует, что эта коллекция содержит указанный элемент (необязательная операция). |
boolean |
addAll |
Добавляет все элементы указанной коллекции в эту коллекцию (необязательная операция). |
void |
clear() |
Удаляет все элементы из этой коллекции (необязательная операция). |
boolean |
contains |
Возвращает true, если эта коллекция содержит указанный элемент. |
boolean |
containsAll |
Возвращает true, если эта коллекция содержит все элементы указанной коллекции. |
boolean |
isEmpty() |
Возвращает true, если эта коллекция не содержит элементов. |
abstract Iterator |
iterator() |
Возвращает итератор для элементов, содержащихся в этой коллекции. |
boolean |
remove |
Удаляет один экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция). |
boolean |
removeAll |
Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция). |
boolean |
retainAll |
Оставляет в этой коллекции только те элементы, которые содержатся в указанной коллекции (необязательная операция). |
Object[] |
toArray() |
Возвращает массив, содержащий все элементы этой коллекции. |
<T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; тип во время выполнения возвращаемого массива совпадает с типом указанного массива. |
String |
toString() |
Возвращает строковое представление этой коллекции. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе Collection
equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray
Подробное описание конструкторов
AbstractCollection
protected AbstractCollection()
Подробное описание методов
iterator
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. - См. также:
addAll
public boolean addAll(Collection<? extends E> c)
- Определено в:
-
addAllв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает указанную коллекцию и последовательно добавляет в эту коллекцию каждый объект, возвращенный итератором.
Обратите внимание: эта реализация выбросит
UnsupportedOperationException, если методaddне переопределен (при условии, что указанная коллекция не пуста). - Параметры:
-
c- коллекция, содержащая элементы, которые следует добавить в эту коллекцию - Возвращает:
-
true, если в результате вызова эта коллекция изменилась - Выбрасывает:
-
UnsupportedOperationException- если эта коллекция не поддерживает операциюaddAll -
ClassCastException- если класс элемента указанной коллекции не позволяет добавить его в эту коллекцию -
NullPointerException- если указанная коллекция содержит элемент null, а эта коллекция не допускает элементы null, или если указанная коллекция равна null -
IllegalArgumentException- если какое-либо свойство элемента указанной коллекции не позволяет добавить его в эту коллекцию -
IllegalStateException- если в данный момент нельзя добавить все элементы из-за ограничений на вставку - См. также:
removeAll
public boolean removeAll(Collection<?> c)
- Определено в:
-
removeAllв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает эту коллекцию, последовательно проверяя каждый возвращаемый итератором элемент на наличие в указанной коллекции. Если элемент содержится в ней, он удаляется из этой коллекции с помощью метода итератора
remove.Обратите внимание: эта реализация выбросит
UnsupportedOperationException, если итератор, возвращаемый методомiterator, не реализует методremove, а эта коллекция содержит один или несколько общих элементов с указанной коллекцией. - Параметры:
-
c- коллекция, содержащая элементы, которые следует удалить из этой коллекции - Возвращает:
-
true, если в результате вызова эта коллекция изменилась - Выбрасывает:
-
UnsupportedOperationException- если эта коллекция не поддерживает операциюremoveAll -
ClassCastException- если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно) -
NullPointerException- если эта коллекция содержит один или несколько элементов null, а указанная коллекция не поддерживает элементы null (необязательно), или если указанная коллекция равна null - См. также:
retainAll
public boolean retainAll(Collection<?> c)
- Определено в:
-
retainAllв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает эту коллекцию, последовательно проверяя каждый возвращаемый итератором элемент на наличие в указанной коллекции. Если элемент не содержится в ней, он удаляется из этой коллекции с помощью метода итератора
remove.Обратите внимание: эта реализация выбросит
UnsupportedOperationException, если итератор, возвращаемый методомiterator, не реализует методremove, а эта коллекция содержит один или несколько элементов, отсутствующих в указанной коллекции. - Параметры:
-
c- коллекция, содержащая элементы, которые следует оставить в этой коллекции - Возвращает:
-
true, если в результате вызова эта коллекция изменилась - Выбрасывает:
-
UnsupportedOperationException- если эта коллекция не поддерживает операциюretainAll -
ClassCastException- если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно) -
NullPointerException- если эта коллекция содержит один или несколько элементов null, а указанная коллекция не допускает элементы null (необязательно), или если указанная коллекция равна null - См. также:
clear
public void clear()
- Определено в:
-
clearв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает эту коллекцию, удаляя каждый элемент с помощью операции
Iterator.remove. Для повышения эффективности большинство реализаций, вероятно, предпочтут переопределить этот метод.Обратите внимание: эта реализация выбросит
UnsupportedOperationException, если итератор, возвращаемый методомiteratorэтой коллекции, не реализует методremove, а эта коллекция не пуста. - Выбрасывает:
-
UnsupportedOperationException- если эта коллекция не поддерживает операциюclear
toString
public String toString()
"[]"). Соседние элементы разделяются символами ", " (запятая и пробел). Элементы преобразуются в строки так же, как в String.valueOf(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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/AbstractCollection.html