Spec-Zone.ru › OpenJDK 27

Класс PriorityBlockingQueue<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractQueue<E>
java.util.concurrent.PriorityBlockingQueue<E>
Параметры типа:
E — тип элементов, хранящихся в этой очереди
Все реализуемые интерфейсы:
Serializable, Iterable<E>, Collection<E>, BlockingQueue<E>, Queue<E>
public class PriorityBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, Serializable
Неограниченная блокирующая очередь, использующая те же правила упорядочения, что и класс PriorityQueue, и предоставляющая операции блокирующего извлечения. Хотя логически эта очередь не ограничена, попытки добавления элементов могут завершиться неудачей из-за нехватки ресурсов (вызывая OutOfMemoryError). Этот класс не допускает элементы null. Очередь с приоритетами, использующая естественный порядок, также не допускает вставку объектов, не реализующих Comparable (это приводит к ClassCastException).

Этот класс и его итератор реализуют все необязательные методы интерфейсов Collection и Iterator. Итератор, предоставляемый методом iterator(), и сплитератор, предоставляемый методом spliterator(), не гарантируют обход элементов PriorityBlockingQueue в каком-либо определённом порядке. Если вам нужен упорядоченный обход, рассмотрите возможность использования Arrays.sort(pq.toArray()). Кроме того, метод drainTo можно использовать для извлечения некоторых или всех элементов в порядке приоритета и их добавления в другую коллекцию.

Операции этого класса не дают никаких гарантий относительно упорядочения элементов с одинаковым приоритетом. Если необходимо обеспечить порядок, можно определить пользовательские классы или компараторы, использующие дополнительный ключ для разрешения совпадений основных значений приоритета. Например, ниже приведён класс, который задаёт для сравниваемых элементов разрешение совпадений по принципу «первым пришёл — первым обслужен». Для его использования следует вставлять new FIFOEntry(anEntry) вместо обычного объекта записи.

class FIFOEntry<E extends Comparable<? super E>>
    implements Comparable<FIFOEntry<E>> {
  static final AtomicLong seq = new AtomicLong();
  final long seqNum;
  final E entry;
  public FIFOEntry(E entry) {
    seqNum = seq.getAndIncrement();
    this.entry = entry;
  }
  public E getEntry() { return entry; }
  public int compareTo(FIFOEntry<E> other) {
    int res = entry.compareTo(other.entry);
    if (res == 0 && other.entry != this.entry)
      res = (seqNum < other.seqNum ? -1 : 1);
    return res;
  }
}

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

С момента:
1.5
См. также:
  • Сериализованная форма

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

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

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

Модификатор и тип Метод Описание
boolean add(E e)
Вставляет указанный элемент в эту очередь с приоритетами.
void clear()
Атомарно удаляет все элементы из этой очереди.
Comparator<? super E> comparator()
Возвращает компаратор, используемый для упорядочения элементов в этой очереди, или null, если очередь использует естественный порядок элементов.
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, пока не будут обработаны все элементы или действие не вызовет исключение.
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, поскольку PriorityBlockingQueue не ограничена по ёмкости.
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)
Возвращает массив, содержащий все элементы этой очереди; тип массива во время выполнения соответствует типу указанного массива.

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

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

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

containsAll, isEmpty, toString
Модификатор и тип Метод Описание
boolean containsAll(Collection<?> c)
Возвращает true, если эта коллекция содержит все элементы указанной коллекции.
boolean isEmpty()
Возвращает 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()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе 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.

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

PriorityBlockingQueue

public PriorityBlockingQueue()
Создает PriorityBlockingQueue с емкостью по умолчанию (11), элементы которой упорядочены согласно их естественному порядку.

PriorityBlockingQueue

public PriorityBlockingQueue(int initialCapacity)
Создает PriorityBlockingQueue с указанной начальной емкостью, элементы которой упорядочены согласно их естественному порядку.
Параметры:
initialCapacity — начальная емкость этой очереди с приоритетами
Исключения:
IllegalArgumentException — если initialCapacity меньше 1

PriorityBlockingQueue

public PriorityBlockingQueue(int initialCapacity, Comparator<? super E> comparator)
Создает PriorityBlockingQueue с указанной начальной емкостью, элементы которой упорядочены согласно указанному компаратору.
Параметры:
initialCapacity — начальная емкость этой очереди с приоритетами
comparator — компаратор, который будет использоваться для упорядочения этой очереди с приоритетами. Если null, будет использоваться естественный порядок элементов.
Исключения:
IllegalArgumentException — если initialCapacity меньше 1

PriorityBlockingQueue

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

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

add

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

offer

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

put

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

offer

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

poll

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

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 — если ожидание было прервано

peek

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

comparator

public Comparator<? super E> comparator()
Возвращает компаратор, используемый для упорядочения элементов в этой очереди, или null, если очередь использует естественный порядок элементов.
Возвращает:
компаратор, используемый для упорядочения элементов в этой очереди, или null, если очередь использует естественный порядок элементов

size

public int size()
Описание скопировано из интерфейса: Collection
Возвращает количество элементов в этой коллекции. Если коллекция содержит более Integer.MAX_VALUE элементов, возвращает Integer.MAX_VALUE.
Указано в:
size в интерфейсе Collection<E>
Возвращает:
количество элементов в этой коллекции

remainingCapacity

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

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, если эта очередь содержит указанный элемент

drainTo

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

drainTo

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

clear

public void clear()
Атомарно удаляет все элементы из этой очереди. После возврата этого вызова очередь будет пуста.
Указано в:
clear в интерфейсе Collection<E>
Переопределяет:
clear в классе AbstractQueue<E>

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

iterator

public Iterator<E> iterator()
Возвращает итератор по элементам этой очереди. Итератор возвращает элементы в произвольном порядке.

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

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

spliterator

public Spliterator<E> spliterator()
Возвращает Spliterator по элементам этой очереди. Сплитератор обходит элементы в произвольном порядке (характеристика ORDERED не сообщается).

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

Spliterator сообщает характеристики Spliterator.SIZED и Spliterator.NONNULL.

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

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