Класс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API будет удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс этого Object во время выполнения. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает выполнение текущего потока до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе Collection
equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этой коллекцией на равенство. |
int |
hashCode() |
Возвращает значение хеш-кода этой коллекции. |
default Stream |
parallelStream() |
Возвращает, возможно, параллельный Stream, источником которого является эта коллекция. |
default boolean |
removeIf |
Удаляет все элементы этой коллекции, удовлетворяющие заданному предикату (необязательная операция). |
int |
size() |
Возвращает количество элементов в этой коллекции. |
default Spliterator |
spliterator() |
Создаёт Spliterator для элементов этой коллекции. |
default Stream |
stream() |
Возвращает последовательный Stream, источником которого является эта коллекция. |
default <T> T[] |
toArray |
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется предоставленная функция generator. |
Подробное описание конструкторов
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.