Класс AbstractCollection<E>
- java.lang.Object
-
- java.util.AbstractCollection<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.
В общем случае программист должен предоставить конструктор без аргументов (void) и Collection конструктор, как рекомендует спецификация интерфейса Collection.
Документация для каждого не абстрактного метода в этом классе подробно описывает его реализацию. Каждый из этих методов может быть переопределен, если реализуемый набор допускает более эффективную реализацию.
Этот класс является членом Java Collections Framework.
- С:
- 1.2
- См. также:
Collection
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | AbstractCollection() | Единственный конструктор. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | add(E e) | Обеспечивает, что этот набор содержит указанный элемент (необязательная операция). |
boolean | addAll(Collection<? extends E> c) | Добавляет все элементы из указанного набора в этот набор (необязательная операция). |
void | clear() | Удаляет все элементы из этого набора (необязательная операция). |
boolean | contains(Object o) | Возвращает |
boolean | containsAll(Collection<?> c) | Возвращает |
boolean | isEmpty() | Возвращает |
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> - Требования к реализации:
- Эта реализация возвращает
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. - См. также:
contains(Object)
addAll
public boolean addAll(Collection<? extends E> c)
Добавляет все элементы из указанной коллекции в эту коллекцию (необязательная операция). Поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции. (Это подразумевает, что поведение этого вызова не определено, если указанная коллекция является этой коллекцией, и эта коллекция непуста.)
- Указано:
-
addAllв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает указанную коллекцию и добавляет каждый объект, возвращаемый итератором, в эту коллекцию по очереди.
Обратите внимание, что эта реализация выбросит
UnsupportedOperationExceptionеслиaddне переопределён (предполагая, что указанная коллекция непустая). - Параметры:
-
c- коллекция, содержащая элементы, которые нужно добавить в эту коллекцию - Возвращает:
-
trueесли эта коллекция изменилась в результате вызова - Исключения:
-
UnsupportedOperationException- если операцияaddAllне поддерживается этой коллекцией -
ClassCastException- если класс элемента указанной коллекции препятствует его добавлению в эту коллекцию -
NullPointerException- если указанная коллекция содержит нулевой элемент, а эта коллекция не допускает нулевых элементов, или если указанная коллекция равна 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 - См. также:
-
remove(Object),contains(Object)
retainAll
public boolean retainAll(Collection<?> c)
Сохраняет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все её элементы, которые не содержатся в указанной коллекции.
- Указано:
-
retainAllв интерфейсеCollection<E> - Требования к реализации:
- Эта реализация перебирает эту коллекцию, проверяя каждый элемент, возвращаемый итератором поочерёдно, чтобы определить, содержится ли он в указанной коллекции. Если он не содержится, он удаляется из этой коллекции с помощью метода
removeитератора.Обратите внимание, что эта реализация выбросит
UnsupportedOperationExceptionесли итератор, возвращённый методомiterator, не реализует методremoveи эта коллекция содержит один или несколько элементов, отсутствующих в указанной коллекции. - Параметры:
-
c- коллекция, содержащая элементы, которые нужно сохранить в этой коллекции - Возвращает:
-
trueесли эта коллекция изменилась в результате вызова - Исключения:
-
UnsupportedOperationException- если операцияretainAllне поддерживается этой коллекцией -
ClassCastException- если типы одного или нескольких элементов в этой коллекции несовместимы с указанной коллекцией (необязательно) -
NullPointerException- если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не допускает нулевых элементов (необязательно), или если указанная коллекция равна 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).
© 1993, 2020, 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/11/docs/api/java.base/java/util/AbstractCollection.html