Spec-Zone.ru › OpenJDK 27

Класс LinkedTransferQueue<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.LinkedTransferQueue<E>
Параметры типа:
E — тип элементов, хранящихся в этой очереди
Все реализуемые интерфейсы:
Serializable, Iterable<E>, Collection<E>, BlockingQueue<E>, TransferQueue<E>, Queue<E>
public class LinkedTransferQueue<E> extends AbstractQueue<E> implements TransferQueue<E>, Serializable
Неограниченная TransferQueue, основанная на связанных узлах. Эта очередь упорядочивает элементы по принципу FIFO (первым пришёл — первым вышел) для каждого производителя. Голова очереди — это элемент, который дольше всего находится в очереди для некоторого производителя. Хвост очереди — это элемент, который меньше всего времени находится в очереди для некоторого производителя.

Следует учитывать, что, в отличие от большинства коллекций, метод size НЕ является операцией с постоянным временем выполнения. Из-за асинхронной природы этих очередей для определения текущего количества элементов требуется обход элементов, поэтому результат может быть неточным, если коллекция изменяется во время обхода.

Групповые операции, добавляющие, удаляющие или проверяющие несколько элементов, такие как AbstractQueue.addAll(Collection), removeIf(Predicate) или forEach(Consumer), не гарантируется выполнять атомарно. Например, обход forEach, выполняемый одновременно с операцией addAll, может увидеть лишь некоторые из добавленных элементов.

Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator.

Эффекты согласованности памяти: как и в случае с другими параллельными коллекциями, действия в потоке, предшествующие помещению объекта в LinkedTransferQueue, happen-before действий, следующих за доступом к этому элементу или его удалением из LinkedTransferQueue в другом потоке.

Этот класс входит в состав Java Collections Framework.

Начиная с:
1.7
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
LinkedTransferQueue()
Создаёт изначально пустую LinkedTransferQueue.
LinkedTransferQueue(Collection<? extends E> c)
Создаёт LinkedTransferQueue, изначально содержащую элементы заданной коллекции, добавленные в порядке обхода итератора этой коллекции.

Краткое описание методов

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в конец этой очереди.
boolean contains(Object o)
Возвращает true, если эта очередь содержит указанный элемент.
int drainTo(Collection<? super E> c)
Удаляет из этой очереди все доступные элементы и добавляет их в заданную коллекцию.
int drainTo(Collection<? super E> c, int maxElements)
Удаляет из этой очереди не более заданного количества доступных элементов и добавляет их в заданную коллекцию.
void forEach(Consumer<? super E> action)
Выполняет заданное действие для каждого элемента Iterable, пока не будут обработаны все элементы или действие не вызовет исключение.
int getWaitingConsumerCount()
Возвращает оценочное количество потребителей, ожидающих получения элементов посредством BlockingQueue.take() или ограниченного по времени вызова poll.
boolean hasWaitingConsumer()
Возвращает true, если хотя бы один потребитель ожидает получения элемента посредством BlockingQueue.take() или ограниченного по времени вызова poll.
boolean isEmpty()
Возвращает true, если эта очередь не содержит элементов.
Iterator<E> iterator()
Возвращает итератор элементов этой очереди в надлежащем порядке.
boolean offer(E e)
Вставляет указанный элемент в конец этой очереди.
boolean offer(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в конец этой очереди.
E peek()
Извлекает, но не удаляет элемент из начала этой очереди или возвращает null, если очередь пуста.
E poll()
Извлекает и удаляет элемент из начала этой очереди или возвращает null, если очередь пуста.
E poll(long timeout, TimeUnit unit)
Извлекает и удаляет элемент из начала этой очереди, ожидая до указанного времени, если это необходимо, пока элемент не станет доступен.
void put(E e)
Вставляет указанный элемент в конец этой очереди.
int remainingCapacity()
Всегда возвращает Integer.MAX_VALUE, поскольку LinkedTransferQueue не ограничена по ёмкости.
boolean remove(Object o)
Удаляет из этой очереди один экземпляр указанного элемента, если он присутствует.
boolean removeAll(Collection<?> c)
Удаляет из этой коллекции все элементы, которые также содержатся в указанной коллекции (необязательная операция).
boolean removeIf(Predicate<? super E> filter)
Удаляет из этой коллекции все элементы, удовлетворяющие заданному предикату (необязательная операция).
boolean retainAll(Collection<?> c)
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция).
int size()
Возвращает количество элементов в этой очереди.
Spliterator<E> spliterator()
Возвращает Spliterator для элементов этой очереди.
E take()
Извлекает и удаляет элемент из начала этой очереди, при необходимости ожидая, пока элемент не станет доступен.
Object[] toArray()
Возвращает массив, содержащий все элементы этой очереди в надлежащем порядке.
<T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой очереди в надлежащем порядке; тип возвращаемого массива во время выполнения совпадает с типом указанного массива.
void transfer(E e)
Передаёт элемент потребителю, при необходимости ожидая его получения.
boolean tryTransfer(E e)
По возможности немедленно передаёт элемент ожидающему потребителю.
boolean tryTransfer(E e, long timeout, TimeUnit unit)
Передаёт элемент потребителю, если это возможно сделать до истечения времени ожидания.

Методы, объявленные в классе AbstractQueue

addAll, clear, element, remove
Модификатор и тип Метод Описание
boolean addAll(Collection<? extends E> c)
Добавляет в эту очередь все элементы указанной коллекции.
void clear()
Удаляет из этой очереди все элементы.
E element()
Извлекает, но не удаляет элемент из начала этой очереди.
E remove()
Извлекает и удаляет элемент из начала этой очереди.

Методы, объявленные в классе AbstractCollection

containsAll, toString
Модификатор и тип Метод Описание
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
String toString()
Возвращает строковое представление этой коллекции.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, «равен» ли этому объекту другой объект.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс этого Object во время выполнения.
int hashCode()
Возвращает значение хеш-кода этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного времени.

Методы, объявленные в интерфейсе Collection

equals, hashCode, parallelStream, stream, toArray
Модификатор и тип Метод Описание
boolean equals(Object o)
Сравнивает указанный объект с этой коллекцией на равенство.
int hashCode()
Возвращает значение хеш-кода этой коллекции.
default Stream<E> parallelStream()
Возвращает, возможно, параллельный Stream с этой коллекцией в качестве источника.
default Stream<E> stream()
Возвращает последовательный Stream с этой коллекцией в качестве источника.
default <T> T[] toArray(IntFunction<T[]> generator)
Возвращает массив, содержащий все элементы этой коллекции; для выделения возвращаемого массива используется указанная функция generator.

Подробное описание конструкторов

LinkedTransferQueue

public LinkedTransferQueue()
Создает изначально пустую LinkedTransferQueue.

LinkedTransferQueue

public LinkedTransferQueue(Collection<? extends E> c)
Создает LinkedTransferQueue, изначально содержащую элементы указанной коллекции, добавленные в порядке обхода итератора коллекции.
Параметры:
c — коллекция элементов, которые следует изначально включить
Исключения:
NullPointerException — если указанная коллекция или любой из ее элементов равны null

Подробное описание методов

toArray

public Object[] toArray()
Возвращает массив, содержащий все элементы этой очереди в надлежащем порядке.

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

Этот метод служит связующим звеном между API на основе массивов и API на основе коллекций.

Указано в:
toArray в интерфейсе Collection<E>
Переопределено:
toArray в классе AbstractCollection<E>
Возвращает:
массив, содержащий все элементы этой очереди

toArray

public <T> T[] toArray(T[] a)
Возвращает массив, содержащий все элементы этой очереди в надлежащем порядке; тип возвращаемого массива во время выполнения совпадает с типом указанного массива. Если очередь помещается в указанный массив, она возвращается в нем. В противном случае выделяется новый массив с типом указанного массива во время выполнения и размером этой очереди.

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

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

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

 String[] y = x.toArray(new String[0]);
Обратите внимание, что toArray(new Object[0]) функционально идентичен toArray().
Указано в:
toArray в интерфейсе Collection<E>
Переопределено:
toArray в классе AbstractCollection<E>
Параметры типа:
T — тип компонентов массива, предназначенного для хранения коллекции
Параметры:
a — массив, в котором должны храниться элементы очереди, если он достаточно велик; в противном случае для этой цели выделяется новый массив того же типа во время выполнения
Возвращает:
массив, содержащий все элементы этой очереди
Исключения:
ArrayStoreException — если тип указанного массива во время выполнения не является надтипом типа во время выполнения каждого элемента этой очереди
NullPointerException — если указанный массив равен null

spliterator

public Spliterator<E> spliterator()
Возвращает Spliterator для элементов этой очереди.

Возвращаемый сплитератор является слабо согласованным.

Spliterator сообщает о характеристиках Spliterator.CONCURRENT, Spliterator.ORDERED и Spliterator.NONNULL.

Указано в:
spliterator в интерфейсе Collection<E>
Указано в:
spliterator в интерфейсе Iterable<E>
Примечание по реализации:
Spliterator реализует trySplit, чтобы обеспечить ограниченный параллелизм.
Возвращает:
Spliterator для элементов этой очереди
Начиная с версии:
1.8

put

public void put(E e)
Вставляет указанный элемент в конец этой очереди. Поскольку очередь не ограничена по размеру, этот метод никогда не будет блокироваться.
Указано в:
put в интерфейсе BlockingQueue<E>
Параметры:
e — добавляемый элемент
Исключения:
NullPointerException — если указанный элемент равен null

offer

public boolean offer(E e, long timeout, TimeUnit unit)
Вставляет указанный элемент в конец этой очереди. Поскольку очередь не ограничена по размеру, этот метод никогда не будет блокироваться и не вернет false.
Указано в:
offer в интерфейсе BlockingQueue<E>
Параметры:
e — добавляемый элемент
timeout — сколько ждать до прекращения ожидания, в единицах unit
unit — TimeUnit, определяющий интерпретацию параметра timeout
Возвращает:
true (как указано в BlockingQueue.offer)
Исключения:
NullPointerException — если указанный элемент равен null

offer

public boolean offer(E e)
Вставляет указанный элемент в конец этой очереди. Поскольку очередь не ограничена по размеру, этот метод никогда не вернет false.
Указано в:
offer в интерфейсе BlockingQueue<E>
Указано в:
offer в интерфейсе Queue<E>
Параметры:
e — добавляемый элемент
Возвращает:
true (как указано в Queue.offer(E))
Исключения:
NullPointerException — если указанный элемент равен null

add

public boolean add(E e)
Вставляет указанный элемент в конец этой очереди. Поскольку очередь не ограничена по размеру, этот метод никогда не вызовет IllegalStateException и не вернет false.
Указано в:
add в интерфейсе BlockingQueue<E>
Указано в:
add в интерфейсе Collection<E>
Указано в:
add в интерфейсе Queue<E>
Переопределено:
add в классе AbstractQueue<E>
Параметры:
e — добавляемый элемент
Возвращает:
true (как указано в Collection.add(E))
Исключения:
NullPointerException — если указанный элемент равен null

tryTransfer

public boolean tryTransfer(E e)
Немедленно передает элемент ожидающему потребителю, если это возможно.

Точнее, немедленно передает указанный элемент, если уже есть потребитель, ожидающий его получения (вызвавший take() или poll с тайм-аутом); в противном случае возвращает false, не помещая элемент в очередь.

Указано в:
tryTransfer в интерфейсе TransferQueue<E>
Параметры:
e — передаваемый элемент
Возвращает:
true, если элемент передан; в противном случае — false
Исключения:
NullPointerException — если указанный элемент равен null

transfer

public void transfer(E e) throws InterruptedException
Передает элемент потребителю, при необходимости ожидая завершения передачи.

Точнее, немедленно передает указанный элемент, если уже есть потребитель, ожидающий его получения (вызвавший take() или poll с тайм-аутом); в противном случае вставляет указанный элемент в конец этой очереди и ожидает, пока потребитель не получит элемент.

Указано в:
transfer в интерфейсе TransferQueue<E>
Параметры:
e — передаваемый элемент
Исключения:
NullPointerException — если указанный элемент равен null
InterruptedException — если во время ожидания возникло прерывание; в этом случае элемент не остается в очереди

tryTransfer

public boolean tryTransfer(E e, long timeout, TimeUnit unit) throws InterruptedException
Передает элемент потребителю, если это возможно до истечения времени ожидания.

Точнее, немедленно передает указанный элемент, если уже есть потребитель, ожидающий его получения (вызвавший take() или poll с тайм-аутом); в противном случае вставляет указанный элемент в конец этой очереди и ожидает, пока потребитель не получит элемент. Если указанное время ожидания истечет до передачи элемента, возвращает false.

Указано в:
tryTransfer в интерфейсе TransferQueue<E>
Параметры:
e — передаваемый элемент
timeout — сколько ждать до прекращения ожидания, в единицах unit
unit — TimeUnit, определяющий интерпретацию параметра timeout
Возвращает:
true в случае успеха или false, если указанное время ожидания истекает до завершения операции; в этом случае элемент не остается в очереди
Исключения:
NullPointerException — если указанный элемент равен null
InterruptedException — если во время ожидания возникло прерывание; в этом случае элемент не остается в очереди

take

public E take() throws InterruptedException
Описание скопировано из интерфейса: BlockingQueue
Извлекает и удаляет элемент из начала этой очереди, при необходимости ожидая появления элемента.
Указано в:
take в интерфейсе BlockingQueue<E>
Возвращает:
элемент из начала этой очереди
Исключения:
InterruptedException — если во время ожидания возникло прерывание

poll

public E poll(long timeout, TimeUnit unit) throws InterruptedException
Описание скопировано из интерфейса: BlockingQueue
Извлекает и удаляет элемент из начала этой очереди, при необходимости ожидая появления элемента в течение указанного времени.
Указано в:
poll в интерфейсе BlockingQueue<E>
Параметры:
timeout — сколько ждать до прекращения ожидания, в единицах unit
unit — TimeUnit, определяющий интерпретацию параметра timeout
Возвращает:
элемент из начала этой очереди или null, если указанное время ожидания истекло до появления элемента
Исключения:
InterruptedException — если во время ожидания возникло прерывание

poll

public E poll()
Описание скопировано из интерфейса: Queue
Извлекает и удаляет элемент из начала этой очереди или возвращает null, если очередь пуста.
Указано в:
poll в интерфейсе Queue<E>
Возвращает:
элемент из начала этой очереди или null, если очередь пуста

drainTo

public int drainTo(Collection<? super E> c)
Описание скопировано из интерфейса: BlockingQueue
Удаляет из этой очереди все доступные элементы и добавляет их в указанную коллекцию. Эта операция может быть эффективнее, чем многократный вызов poll для этой очереди. Ошибка при попытке добавить элементы в коллекцию c может привести к тому, что после возникновения соответствующего исключения элементы будут находиться ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.
Указано в:
drainTo в интерфейсе BlockingQueue<E>
Параметры:
c — коллекция, в которую следует перенести элементы
Возвращает:
количество перенесенных элементов
Исключения:
NullPointerException — если указанная коллекция равна null
IllegalArgumentException — если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию

drainTo

public int drainTo(Collection<? super E> c, int maxElements)
Описание скопировано из интерфейса: BlockingQueue
Удаляет из этой очереди не более указанного количества доступных элементов и добавляет их в указанную коллекцию. Ошибка при попытке добавить элементы в коллекцию c может привести к тому, что после возникновения соответствующего исключения элементы будут находиться ни в одной из коллекций, в одной из них или в обеих. Попытка перенести элементы очереди в нее же приводит к IllegalArgumentException. Кроме того, поведение этой операции не определено, если указанная коллекция изменяется во время ее выполнения.
Указано в:
drainTo в интерфейсе BlockingQueue<E>
Параметры:
c — коллекция, в которую следует перенести элементы
maxElements — максимальное количество элементов для переноса
Возвращает:
количество перенесенных элементов
Исключения:
NullPointerException — если указанная коллекция равна null
IllegalArgumentException — если указанная коллекция является этой очередью или какое-либо свойство элемента этой очереди препятствует его добавлению в указанную коллекцию

iterator

public Iterator<E> iterator()
Возвращает итератор по элементам этой очереди в надлежащем порядке. Элементы возвращаются по порядку: от первого (начала) до последнего (конца).

Возвращаемый итератор является слабо согласованным.

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

peek

public E peek()
Описание скопировано из интерфейса: Queue
Возвращает элемент из начала этой очереди, не удаляя его, или возвращает null, если очередь пуста.
Указано в:
peek в интерфейсе Queue<E>
Возвращает:
элемент из начала этой очереди или null, если очередь пуста

isEmpty

public boolean isEmpty()
Возвращает true, если эта очередь не содержит элементов.
Указано в:
isEmpty в интерфейсе Collection<E>
Переопределено:
isEmpty в классе AbstractCollection<E>
Возвращает:
true, если эта очередь не содержит элементов

hasWaitingConsumer

public boolean hasWaitingConsumer()
Описание скопировано из интерфейса: TransferQueue
Возвращает true, если хотя бы один потребитель ожидает получения элемента с помощью BlockingQueue.take() или poll с тайм-аутом. Возвращаемое значение отражает состояние на конкретный момент времени.
Указано в:
hasWaitingConsumer в интерфейсе TransferQueue<E>
Возвращает:
true, если хотя бы один потребитель ожидает получения элемента

size

public int size()
Возвращает количество элементов в этой очереди. Если очередь содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.

Обратите внимание: в отличие от большинства коллекций, этот метод НЕ выполняется за постоянное время. Из-за асинхронной природы этих очередей для определения текущего количества элементов требуется обход O(n).

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

getWaitingConsumerCount

public int getWaitingConsumerCount()
Описание скопировано из интерфейса: TransferQueue
Возвращает оценочное количество потребителей, ожидающих получения элементов с помощью BlockingQueue.take() или poll с тайм-аутом. Возвращаемое значение является приблизительной оценкой состояния на конкретный момент времени и может быть неточным, если потребители завершили ожидание или отказались от него. Это значение может быть полезно для мониторинга и эвристических алгоритмов, но не для управления синхронизацией. Реализации этого метода, вероятно, будут заметно медленнее, чем реализации метода TransferQueue.hasWaitingConsumer().
Указано в:
getWaitingConsumerCount в интерфейсе TransferQueue<E>
Возвращает:
количество потребителей, ожидающих получения элементов

remove

public boolean remove(Object o)
Удаляет из этой очереди один экземпляр указанного элемента, если он присутствует. Точнее, удаляет элемент e такой, что o.equals(e), если очередь содержит один или несколько таких элементов. Возвращает true, если очередь содержала указанный элемент (или, что эквивалентно, если вызов изменил очередь).
Указано в:
remove в интерфейсе BlockingQueue<E>
Указано в:
remove в интерфейсе Collection<E>
Переопределено:
remove в классе AbstractCollection<E>
Параметры:
o — элемент, который следует удалить из этой очереди, если он присутствует
Возвращает:
true, если вызов изменил эту очередь

contains

public boolean contains(Object o)
Возвращает true, если эта очередь содержит указанный элемент. Точнее, возвращает true тогда и только тогда, когда эта очередь содержит хотя бы один элемент e такой, что o.equals(e).
Указано в:
contains в интерфейсе BlockingQueue<E>
Указано в:
contains в интерфейсе Collection<E>
Переопределено:
contains в классе AbstractCollection<E>
Параметры:
o — объект, наличие которого в этой очереди требуется проверить
Возвращает:
true, если эта очередь содержит указанный элемент

remainingCapacity

public int remainingCapacity()
Всегда возвращает Integer.MAX_VALUE, поскольку LinkedTransferQueue не имеет ограничений по емкости.
Указано в:
remainingCapacity в интерфейсе BlockingQueue<E>
Возвращает:
Integer.MAX_VALUE (как указано в BlockingQueue.remainingCapacity())

removeIf

public boolean removeIf(Predicate<? super E> filter)
Описание скопировано из интерфейса: Collection
Удаляет из этой коллекции все элементы, удовлетворяющие указанному предикату (необязательная операция). Ошибки и исключения времени выполнения, возникшие во время итерации или при вычислении предиката, передаются вызывающему коду.
Указано в:
removeIf в интерфейсе Collection<E>
Параметры:
filter — предикат, возвращающий true для элементов, которые требуется удалить
Возвращает:
true, если были удалены какие-либо элементы
Исключения:
NullPointerException — если указанный фильтр равен null

removeAll

public boolean removeAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Удаляет из этой коллекции все элементы, содержащиеся также в указанной коллекции (необязательная операция). После возврата этого вызова в данной коллекции не останется элементов, общих с указанной коллекцией.
Указано в:
removeAll в интерфейсе Collection<E>
Переопределено:
removeAll в классе AbstractCollection<E>
Параметры:
c — коллекция, содержащая элементы, которые следует удалить из этой коллекции
Возвращает:
true, если вызов изменил эту коллекцию
Исключения:
NullPointerException — если эта коллекция содержит один или несколько элементов null, а указанная коллекция не поддерживает элементы null (необязательно), либо если указанная коллекция равна null
См. также:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

retainAll

public boolean retainAll(Collection<?> c)
Описание скопировано из класса: AbstractCollection
Оставляет в этой коллекции только элементы, содержащиеся в указанной коллекции (необязательная операция). Иными словами, удаляет из этой коллекции все элементы, не содержащиеся в указанной коллекции.
Указано в:
retainAll в интерфейсе Collection<E>
Переопределено:
retainAll в классе AbstractCollection<E>
Параметры:
c — коллекция, содержащая элементы, которые следует оставить в этой коллекции
Возвращает:
true, если вызов изменил эту коллекцию
Исключения:
NullPointerException — если эта коллекция содержит один или несколько элементов null, а указанная коллекция не допускает элементы null (необязательно), либо если указанная коллекция равна null
См. также:
  • AbstractCollection.remove(Object)
  • AbstractCollection.contains(Object)

forEach

public void forEach(Consumer<? super E> action)
Описание скопировано из интерфейса: Iterable
Выполняет указанное действие для каждого элемента Iterable, пока не будут обработаны все элементы или пока действие не вызовет исключение. Если порядок итерации определен, действия выполняются в этом порядке. Исключения, вызванные действием, передаются вызывающему коду.

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

Указано в:
forEach в интерфейсе Iterable<E>
Параметры:
action — действие, выполняемое для каждого элемента
Исключения:
NullPointerException — если указанное действие равно null

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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