Spec-Zone.ru › OpenJDK 8

Класс 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.

Программисту обычно следует предоставить конструктор без аргументов (пустой) и 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)

Возвращает 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)

Сохраняет только элементы в этом наборе, которые содержатся в указанном наборе (необязательная операция).

abstract int size()

Возвращает количество элементов в этом наборе.

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, spliterator, stream

Методы, унаследованные от интерфейса java.lang.Iterable

forEach

Конструкторы

AbstractCollection

protected AbstractCollection()

Единственный конструктор. (Для вызова подклассами конструкторов, как правило, неявный).

Методы

iterator

public abstract Iterator<E> iterator()

Возвращает итератор по элементам, содержащимся в этой коллекции.

Определено в:
iterator в интерфейсе Iterable<E>
Определено в:
iterator в интерфейсе Collection<E>
Возвращает:
итератор по элементам, содержащимся в этой коллекции

size

public abstract int size()

Описание скопировано из интерфейса: Collection

Возвращает количество элементов в этой коллекции. Если эта коллекция содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.

Определено в:
size в интерфейсе Collection<E>
Возвращает:
количество элементов в этой коллекции

isEmpty

public boolean isEmpty()

Возвращает true, если эта коллекция не содержит элементов.

Это реализация возвращает size() == 0.

Определено в:
isEmpty в интерфейсе Collection<E>
Возвращает:
true если эта коллекция не содержит элементов

contains

public boolean contains(Object o)

Возвращает true если эта коллекция содержит указанный элемент. Более формально, возвращает true тогда и только тогда, когда эта коллекция содержит по крайней мере один элемент e такой, что (o==null ? e==null : o.equals(e)).

Эта реализация итерируется по элементам в коллекции, проверяя каждый элемент по очереди на равенство с указанным элементом.

Определено в:
contains в интерфейсе Collection<E>
Параметры:
o - элемент, присутствие которого в этой коллекции нужно проверить
Возвращает:
true если эта коллекция содержит указанный элемент
Исключения:
ClassCastException - если тип указанного элемента несовместим с этой коллекцией (необязательно)
NullPointerException - если указанный элемент равен null, а эта коллекция не допускает null-элементов (необязательно)

toArray

public Object[] toArray()

Возвращает массив, содержащий все элементы в этой коллекции. Если эта коллекция гарантирует порядок возврата своих элементов итератором, этот метод должен вернуть элементы в том же порядке.

Возвращаемый массив будет «безопасным», поскольку к нему не сохраняются ссылки этой коллекции. (Другими словами, этот метод должен выделять новый массив, даже если эта коллекция поддерживается массивом). Вызывающая сторона, таким образом, свободна изменять возвращаемый массив.

Этот метод служит мостом между основанными на массиве и на основе коллекций API.

Эта реализация возвращает массив, содержащий все элементы, возвращенные итератором этой коллекции, в том же порядке, хранящиеся в последовательных элементах массива, начиная с индекса 0. Длина возвращаемого массива равна количеству элементов, возвращенных итератором, даже если размер этой коллекции изменяется во время итерации, как может произойти, если коллекция допускает одновременное изменение во время итерации. Метод size вызывается только как подсказка оптимизации; правильный результат возвращается даже если итератор возвращает другое количество элементов.

Этот метод эквивалентен:

List<E> list = new ArrayList<E>(size());
 for (E e : this)
     list.add(e);
 return list.toArray();
Определено в:
toArray в интерфейсе Collection<E>
Возвращает:
массив, содержащий все элементы в этой коллекции

toArray

public <T> T[] toArray(T[] a)

Возвращает массив, содержащий все элементы в этой коллекции; тип выполнения возвращаемого массива — указанного массива. Если коллекция помещается в указанный массив, она возвращается в нем. В противном случае, выделяется новый массив с типом выполнения указанного массива и размером этой коллекции.

Если эта коллекция помещается в указанный массив с избыточным местом (т. е. массив имеет больше элементов, чем эта коллекция), элемент в массиве сразу после конца коллекции устанавливается в null. (Это полезно для определения длины этой коллекции *только* если вызывающая сторона знает, что эта коллекция не содержит каких-либо null элементов.)

Если эта коллекция гарантирует порядок возврата своих элементов итератором, этот метод должен вернуть элементы в том же порядке.

Как и метод Collection.toArray(), этот метод служит мостом между основанными на массиве и основанными на коллекции API. Кроме того, этот метод позволяет точно контролировать тип выполнения выходного массива и, при определенных обстоятельствах, может использоваться для экономии затрат на выделение памяти.

Предположим, что x — это коллекция, известная тем, что содержит только строки. Следующий код может использоваться для выгрузки коллекции в новый выделенный массив String:

String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) идентичен по функции toArray().

Эта реализация возвращает массив, содержащий все элементы, возвращенные итератором этой коллекции в том же порядке, хранящиеся в последовательных элементах массива, начиная с индекса 0. Если количество элементов, возвращенных итератором, слишком велико для размещения в указанном массиве, элементы возвращаются в новом выделенном массиве с длиной, равной количеству элементов, возвращенных итератором, даже если размер этой коллекции изменяется во время итерации, как может произойти, если коллекция допускает одновременное изменение во время итерации. Метод size вызывается только как подсказка оптимизации; правильный результат возвращается даже если итератор возвращает другое количество элементов.

Этот метод эквивалентен:

List<E> list = new ArrayList<E>(size());
 for (E e : this)
     list.add(e);
 return list.toArray(a);
Определено в:
toArray в интерфейсе Collection<E>
Параметры типа:
T - тип выполнения массива для хранения коллекции
Параметры:
a - массив, в который должны быть помещены элементы этой коллекции, если он достаточно большой; в противном случае, для этой цели выделяется новый массив того же типа выполнения.
Возвращает:
массив, содержащий все элементы в этой коллекции
Исключения:
ArrayStoreException - если тип выполнения указанного массива не является надтипом типа выполнения каждого элемента в этой коллекции
NullPointerException - если указанный массив равен null

add

public boolean add(E e)

Обеспечивает, что эта коллекция содержит указанный элемент (необязательная операция). Возвращает true если эта коллекция изменилась в результате вызова. (Возвращает false если эта коллекция не допускает дубликатов и уже содержит указанный элемент.)

Коллекции, поддерживающие эту операцию, могут накладывать ограничения на добавляемые элементы. В частности, некоторые коллекции будут отказываться добавлять null элементы, а другие наложат ограничения на тип добавляемых элементов. Классы коллекций должны четко указывать в своей документации любые ограничения на добавляемые элементы.

Если коллекция отказывается добавить определенный элемент по любой причине, кроме уже содержащегося элемента, она *должна* выбросить исключение (а не вернуть false). Это сохраняет инвариант, что коллекция всегда содержит указанный элемент после возврата этого вызова.

Эта реализация всегда выбрасывает UnsupportedOperationException.

Определено в:
add в интерфейсе Collection<E>
Параметры:
e - элемент, присутствие которого в этой коллекции должно быть гарантировано
Возвращает:
true если эта коллекция изменилась в результате вызова
Исключения:
UnsupportedOperationException - если операция add не поддерживается этой коллекцией
ClassCastException - если класс указанного элемента препятствует его добавлению в эту коллекцию
NullPointerException - если указанный элемент равен null, а эта коллекция не допускает null-элементов
IllegalArgumentException - если какое-либо свойство элемента препятствует его добавлению в эту коллекцию
IllegalStateException - если элемент не может быть добавлен в данный момент из-за ограничений на вставку

remove

public boolean remove(Object o)

Удаляет единственный экземпляр указанного элемента из этой коллекции, если он присутствует (необязательная операция). Более формально, удаляет элемент e такой, что (o==null ? e==null : o.equals(e)), если эта коллекция содержит один или несколько таких элементов. Возвращает true если эта коллекция содержала указанный элемент (или, что эквивалентно, если эта коллекция изменилась в результате вызова).

Эта реализация итерируется по коллекции в поисках указанного элемента. Если элемент найден, он удаляется из коллекции с помощью метода remove итератора.

Обратите внимание, что эта реализация выбрасывает UnsupportedOperationException если итератор, возвращенный методом iterator этой коллекции, не реализует метод remove и эта коллекция содержит указанный объект.

Определено в:
remove в интерфейсе Collection<E>
Параметры:
o - элемент, подлежащий удалению из этой коллекции, если он присутствует
Возвращает:
true если элемент был удален в результате этого вызова
Исключения:
UnsupportedOperationException - если операция remove не поддерживается этой коллекцией
ClassCastException - если тип указанного элемента несовместим с этой коллекцией (необязательно)
NullPointerException - если указанный элемент равен null, а эта коллекция не допускает null-элементов (необязательно)

containsAll

public boolean containsAll(Collection<?> c)

Возвращает true если эта коллекция содержит все элементы в указанной коллекции.

Эта реализация итерируется по указанной коллекции, проверяя каждый элемент, возвращенный итератором по очереди, чтобы увидеть, содержится ли он в этой коллекции. Если все элементы так содержатся, возвращается true, в противном случае false.

Указано в:
containsAll в интерфейсе Collection<E>
Параметры:
c - коллекция, которая должна проверяться на вхождение в эту коллекцию
Возвращает:
true если эта коллекция содержит все элементы в указанной коллекции
Выбрасывает:
ClassCastException - если типы одного или нескольких элементов в указанной коллекции несовместимы с этой коллекцией (необязательно)
NullPointerException - если указанная коллекция содержит один или несколько нулевых элементов, а эта коллекция не допускает нулевые элементы (необязательно), или если указанная коллекция равна null.
См. также:
contains(Object)

addAll

public boolean addAll(Collection<? extends E> c)

Добавляет все элементы из указанной коллекции в эту коллекцию (необязательная операция). Поведение этой операции не определено, если указанная коллекция изменяется во время выполнения операции. (Это подразумевает, что поведение этого вызова не определено, если указанная коллекция является этой коллекцией, и эта коллекция не пуста.)

Эта реализация итерируется по указанной коллекции и добавляет каждый объект, возвращаемый итератором, в эту коллекцию по очереди.

Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если add не переопределён (предполагается, что указанная коллекция не пуста).

Указано в:
addAll в интерфейсе Collection<E>
Параметры:
c - коллекция, содержащая элементы, которые нужно добавить в эту коллекцию
Возвращает:
true если эта коллекция изменилась в результате вызова
Выбрасывает:
UnsupportedOperationException - если операция addAll не поддерживается этой коллекцией
ClassCastException - если класс элемента указанной коллекции не позволяет добавить его в эту коллекцию
NullPointerException - если указанная коллекция содержит нулевой элемент, а эта коллекция не допускает нулевых элементов, или если указанная коллекция равна null
IllegalArgumentException - если какое-либо свойство элемента указанной коллекции препятствует его добавлению в эту коллекцию
IllegalStateException - если не все элементы могут быть добавлены в данный момент из-за ограничений вставки
См. также:
add(Object)

removeAll

public boolean removeAll(Collection<?> c)

Удаляет все элементы этой коллекции, которые также содержатся в указанной коллекции (необязательная операция). После возврата этого вызова эта коллекция не будет содержать общих элементов с указанной коллекцией.

Эта реализация итерируется по этой коллекции, проверяя каждый возвращаемый итератором элемент по очереди, чтобы определить, содержится ли он в указанной коллекции. Если он содержится, он удаляется из этой коллекции с помощью метода remove итератора.

Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор, возвращаемый методом iterator, не реализует метод remove и эта коллекция содержит один или несколько общих элементов с указанной коллекцией.

Указано в:
removeAll в интерфейсе Collection<E>
Параметры:
c - коллекция, содержащая элементы, которые нужно удалить из этой коллекции
Возвращает:
true если эта коллекция изменилась в результате вызова
Выбрасывает:
UnsupportedOperationException - если метод removeAll не поддерживается этой коллекцией
ClassCastException - если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно)
NullPointerException - если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не поддерживает нулевые элементы (необязательно), или если указанная коллекция равна null
См. также:
remove(Object), contains(Object)

retainAll

public boolean retainAll(Collection<?> c)

Сохраняет только элементы в этой коллекции, которые содержатся в указанной коллекции (необязательная операция). Другими словами, удаляет из этой коллекции все её элементы, которые не содержатся в указанной коллекции.

Эта реализация итерируется по этой коллекции, проверяя каждый возвращаемый итератором элемент по очереди, чтобы определить, содержится ли он в указанной коллекции. Если он не содержится, он удаляется из этой коллекции с помощью метода remove итератора.

Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор, возвращаемый методом iterator, не реализует метод remove и эта коллекция содержит один или несколько элементов, отсутствующих в указанной коллекции.

Указано в:
retainAll в интерфейсе Collection<E>
Параметры:
c - коллекция, содержащая элементы, которые нужно сохранить в этой коллекции
Возвращает:
true если эта коллекция изменилась в результате вызова
Выбрасывает:
UnsupportedOperationException - если операция retainAll не поддерживается этой коллекцией
ClassCastException - если типы одного или нескольких элементов этой коллекции несовместимы с указанной коллекцией (необязательно)
NullPointerException - если эта коллекция содержит один или несколько нулевых элементов, а указанная коллекция не допускает нулевых элементов (необязательно), или если указанная коллекция равна null
См. также:
remove(Object), contains(Object)

clear

public void clear()

Удаляет все элементы из этой коллекции (необязательная операция). Коллекция будет пустой после возврата этого метода.

Эта реализация итерируется по этой коллекции, удаляя каждый элемент с помощью операции Iterator.remove. Большинство реализаций, вероятно, выберут переопределение этого метода для повышения эффективности.

Обратите внимание, что эта реализация выбросит UnsupportedOperationException, если итератор, возвращаемый методом iterator этой коллекции, не реализует метод remove и эта коллекция не пуста.

Указано в:
clear в интерфейсе Collection<E>
Выбрасывает:
UnsupportedOperationException - если операция clear не поддерживается этой коллекцией

toString

public String toString()

Возвращает строковое представление этой коллекции. Строковое представление состоит из списка элементов коллекции в порядке их возвращения итератором, заключённых в квадратные скобки ("[]"). Смежные элементы разделяются символами ", " (запятая и пробел). Элементы преобразуются в строки с помощью String.valueOf(Object).

Переопределяет:
toString в классе 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.

Spec-Zone.ru

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