Класс AbstractCollection<E>
- Type Parameters:
-
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.
- С:
- 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() |
Возвращает строковое представление этого набора. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.util.Collection
equals, hashCode, parallelStream, removeIf, size, spliterator, stream, toArray
Подробное описание конструкторов
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, если данная коллекция содержит все элементы в указанной коллекции.- Specified by:
-
containsAllв интерфейсеCollection<E> - Implementation Requirements:
- Это реализация перебирает указанную коллекцию, проверяя каждый элемент, возвращаемый итератором, на предмет его принадлежности к этой коллекции. Если все элементы содержатся
trueвозвращается значение true, в противном случаеfalse. - Parameters:
-
c- коллекция, проверяемая на предмет включения в данную коллекцию - Returns:
-
true, если эта коллекция содержит все элементы указанной коллекции - Throws:
-
ClassCastException- если типы одного или нескольких элементов в указанной коллекции несовместимы с данной коллекцией (необязательно) -
NullPointerException- если указанная коллекция содержит один или несколько нулевых элементов, а данная коллекция не допускает нулевых элементов (необязательно) или если указанная коллекция равна null. - See Also:
addAll
public boolean addAll(Collection<? extends E> c)
- Specified by:
-
addAllв интерфейсеCollection<E> - Implementation Requirements:
- Эта реализация перебирает указанную коллекцию и добавляет каждый объект, возвращаемый итератором, в эту коллекцию по очереди.
Обратите внимание, что эта реализация будет выбрасывать
UnsupportedOperationExceptionза исключением случаев, когдаaddпереопределен (при условии, что указанная коллекция не пуста). - Parameters:
-
c- коллекция, содержащая элементы, которые нужно добавить в эту коллекцию - Returns:
-
trueесли эта коллекция изменилась в результате вызова - Throws:
-
UnsupportedOperationException- если операцияaddAllне поддерживается данной коллекцией -
ClassCastException- если класс элемента указанной коллекции не позволяет добавить его в эту коллекцию -
NullPointerException- если указанная коллекция содержит нулевой элемент, а данная коллекция не допускает нулевых элементов, или если указанная коллекция равна null -
IllegalArgumentException- если какое-либо свойство элемента указанной коллекции не позволяет добавить его в эту коллекцию -
IllegalStateException- если не все элементы могут быть добавлены в данный момент из-за ограничений вставки - See Also:
removeAll
public boolean removeAll(Collection<?> c)
- Specified by:
-
removeAllв интерфейсеCollection<E> - Implementation Requirements:
- Эта реализация перебирает эту коллекцию, проверяя каждый элемент, возвращаемый итератором, на предмет его принадлежности к указанной коллекции. Если он содержится, он удаляется из этой коллекции с помощью метода
removeитератора.Обратите внимание, что эта реализация выбросит
UnsupportedOperationExceptionесли итератор, возвращаемый методомiterator, не реализует методremoveи эта коллекция содержит один или несколько общих элементов с указанной коллекцией. - Parameters:
-
c- коллекция, содержащая элементы, которые нужно удалить из этой коллекции - Returns:
-
trueесли эта коллекция изменилась в результате вызова - Throws:
-
UnsupportedOperationException- если методremoveAllне поддерживается данной коллекцией -
ClassCastException- если типы одного или нескольких элементов в этой коллекции несовместимы с указанной коллекцией (необязательно) -
NullPointerException- если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не поддерживает нулевые элементы (необязательно) или если указанная коллекция равна null - See Also:
retainAll
public boolean retainAll(Collection<?> c)
- Specified by:
-
retainAllв интерфейсеCollection<E> - Implementation Requirements:
- Эта реализация перебирает эту коллекцию, проверяя каждый элемент, возвращаемый итератором, на предмет его принадлежности к указанной коллекции. Если он не содержится, он удаляется из этой коллекции с помощью метода
removeитератора.Обратите внимание, что эта реализация выбросит
UnsupportedOperationExceptionесли итератор, возвращаемый методомiterator, не реализует методremoveи эта коллекция содержит один или несколько элементов, отсутствующих в указанной коллекции. - Parameters:
-
c- коллекция, содержащая элементы, которые нужно сохранить в этой коллекции - Returns:
-
trueесли эта коллекция изменилась в результате вызова - Throws:
-
UnsupportedOperationException- если операцияretainAllне поддерживается данной коллекцией -
ClassCastException- если типы одного или нескольких элементов в этой коллекции несовместимы с указанной коллекцией (необязательно) -
NullPointerException- если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не допускает нулевых элементов (необязательно) или если указанная коллекция равна null - See Also:
clear
public void clear()
- Specified by:
-
clearв интерфейсеCollection<E> - Implementation Requirements:
- Эта реализация перебирает эту коллекцию, удаляя каждый элемент с помощью операции
Iterator.remove. Большинство реализаций, вероятно, выберут переопределение этого метода для повышения эффективности.Обратите внимание, что эта реализация выбросит
UnsupportedOperationExceptionесли итератор, возвращаемый методомiteratorэтой коллекции, не реализует методremoveи эта коллекция не пуста. - Throws:
-
UnsupportedOperationException- если операцияclearне поддерживается данной коллекцией
toString
public String toString()
"[]"). Смежные элементы разделяются символами ", " (запятая и пробел). Элементы преобразуются в строки с помощью String.valueOf(Object).- Overrides:
-
toStringв классеObject - Returns:
- строковое представление этой коллекции
© 1993, 2023, 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/21/docs/api/java.base/java/util/AbstractCollection.html