Интерфейс BaseStream<T,S extends BaseStream<T,S>>
- Параметры типа:
-
T- тип элементов потока -
S- тип потока, реализующегоBaseStream
- Все суперинтерфейсы:
AutoCloseable
- Все известные дочерние интерфейсы:
-
DoubleStream,IntStream,LongStream,Stream<T>
public interface BaseStream<T,S extends BaseStream<T,S>> extends AutoCloseable
Базовый интерфейс для потоков, которые представляют собой последовательности элементов, поддерживающие последовательные и параллельные агрегированные операции. Следующий пример иллюстрирует агрегированную операцию, использующую типы потоков Stream и IntStream, вычисляя сумму весов красных виджетов:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum(); См. документацию класса для Stream и документацию пакета для java.util.stream для дополнительной спецификации потоков, операций над потоками, конвейеров потоков и параллелизма, который регулирует поведение всех типов потоков.- С:
- 1.8
- См. также:
-
Stream,IntStream,LongStream,DoubleStream, java.util.stream
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | close() | Закрывает этот поток, вызывая все обработчики закрытия для этой цепочки потоков. |
boolean | isParallel() | Возвращает, будет ли этот поток выполняться параллельно, если будет выполнена терминальная операция. |
Iterator<T> | iterator() | Возвращает итератор для элементов этого потока. |
S | onClose(Runnable closeHandler) | Возвращает эквивалентный поток с дополнительным обработчиком закрытия. |
S | parallel() | Возвращает эквивалентный параллельный поток. |
S | sequential() | Возвращает эквивалентный последовательный поток. |
Spliterator<T> | spliterator() | Возвращает разделитель для элементов этого потока. |
S | unordered() | Возвращает эквивалентный поток, который является неупорядоченным. |
Методы
iterator
Iterator<T> iterator()
Возвращает итератор для элементов этого потока.
Это конечная операция.
- Возвращает:
- итератор элементов для этого потока
spliterator
Spliterator<T> spliterator()
Возвращает разделитель для элементов этого потока.
Это конечная операция.
Возвращаемый разделитель должен сообщать о наборе характеристик, полученных из потока (а именно, характеристик, полученных от разделителя источника потока и промежуточных операций). Реализации могут сообщать о подмножестве этих характеристик. Например, может быть слишком дорого вычислить весь набор для некоторых или всех возможных цепочек потоков.
- Возвращает:
- разделитель элементов для этого потока
isParallel
boolean isParallel()
Возвращает, будет ли этот поток, если будет выполнена терминальная операция, выполняться параллельно. Вызов этого метода после вызова метода терминальной операции потока может привести к непредсказуемым результатам.
- Возвращает:
-
trueесли этот поток будет выполняться параллельно при выполнении
sequential
S sequential()
Возвращает эквивалентный последовательный поток. Может вернуть сам себя, либо потому, что поток уже был последовательным, либо потому, что состояние базового потока было изменено на последовательный.
- Возвращает:
- последовательный поток
parallel
S parallel()
Возвращает эквивалентный параллельный поток. Может вернуть сам себя, либо потому, что поток уже был параллельным, либо потому, что состояние базового потока было изменено на параллельный.
- Возвращает:
- параллельный поток
unordered
S unordered()
Возвращает эквивалентный неупорядоченный поток. Может вернуть сам себя, либо потому, что поток уже был неупорядоченным, либо потому, что состояние базового потока было изменено на неупорядоченный.
- Возвращает:
- неупорядоченный поток
onClose
S onClose(Runnable closeHandler)
Возвращает эквивалентный поток с дополнительным обработчиком закрытия. Обработчики закрытия выполняются, когда для потока вызывается метод close(), и выполняются в том порядке, в котором они были добавлены. Все обработчики закрытия выполняются, даже если предыдущие обработчики закрытия выбрасывают исключения. Если какой-либо обработчик закрытия выбрасывает исключение, первое сгенерированное исключение будет передано вызывающей стороне close(), а остальные исключения добавятся к этому исключению как подавленные исключения (если одно из оставшихся исключений не является тем же исключением, что и первое исключение, так как исключение не может подавлять само себя).
- Параметры:
-
closeHandler- задача для выполнения при закрытии потока - Возвращает:
- поток с обработчиком, который выполняется, если поток закрывается
close
void close()
Закрывает этот поток, вызывая все обработчики закрытия для этой цепочки потоков.
- Определено в:
-
closeв интерфейсеAutoCloseable - См. также:
AutoCloseable.close()
© 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/stream/BaseStream.html