Spec-Zone.ru › OpenJDK 8

Интерфейс LongStream

Все суперинтерфейсы:
AutoCloseable, BaseStream<Long,LongStream>

public interface LongStream
extends BaseStream<Long,LongStream>

Последовательность примитивных элементов со значениями типа long, поддерживающая последовательные и параллельные агрегирующие операции. Это примитивное специализированное представление Stream.

Следующий пример демонстрирует агрегирующую операцию с использованием Stream и LongStream, вычисляя сумму весов красных виджетов:

long sum = widgets.stream()
                       .filter(w -> w.getColor() == RED)
                       .mapToLong(w -> w.getWeight())
                       .sum();
См. документацию класса Stream и документацию пакета java.util.stream для дополнительной спецификации потоков, операций с потоками, конвейеров потоков и параллелизма.
С момента:
1.8
См. также:
Stream, java.util.stream

Вложенные классы

Модификатор и тип Интерфейс и описание
static interface  LongStream.Builder

Изменяемый билдер для LongStream.

Методы

Модификатор и тип Метод и описание
boolean allMatch(LongPredicate predicate)

Возвращает значение true, если все элементы потока соответствуют предоставленному предикату.

boolean anyMatch(LongPredicate predicate)

Возвращает значение true, если хотя бы один элемент потока соответствует предоставленному предикату.

DoubleStream asDoubleStream()

Возвращает DoubleStream, содержащий элементы этого потока, преобразованные в double.

OptionalDouble average()

Возвращает OptionalDouble, описывающий среднее арифметическое элементов этого потока, или пустой объект Optional, если поток пустой.

Stream<Long> boxed()

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

static LongStream.Builder builder()

Возвращает билдер для LongStream.

<R> R collect(Supplier<R> supplier, ObjLongConsumer<R> accumulator, BiConsumer<R,R> combiner)

Выполняет операцию изменяемого сокращения над элементами этого потока.

static LongStream concat(LongStream a, LongStream b)

Создаёт лениво конкатенированный поток, элементы которого — все элементы первого потока, за которыми следуют все элементы второго потока.

long count()

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

LongStream distinct()

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

static LongStream empty()

Возвращает пустой последовательный LongStream.

LongStream filter(LongPredicate predicate)

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

OptionalLong findAny()

Возвращает OptionalLong, описывающий какой-либо элемент потока, или пустой OptionalLong если поток пустой.

OptionalLong findFirst()

Возвращает OptionalLong, описывающий первый элемент этого потока, или пустой OptionalLong если поток пустой.

LongStream flatMap(LongFunction<? extends LongStream> mapper)

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

void forEach(LongConsumer action)

Выполняет действие для каждого элемента этого потока.

void forEachOrdered(LongConsumer action)

Выполняет действие для каждого элемента этого потока, гарантируя, что каждый элемент обрабатывается в порядке встречи для потоков, для которых определён порядок встречи.

static LongStream generate(LongSupplier s)

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

static LongStream iterate(long seed, LongUnaryOperator f)

Возвращает бесконечный последовательный упорядоченный LongStream, полученный путём итерационного применения функции f к начальному элементу seed, создавая Stream, состоящий из seed, f(seed), f(f(seed)), и т.д.

PrimitiveIterator.OfLong iterator()

Возвращает итератор для элементов этого потока.

LongStream limit(long maxSize)

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

LongStream map(LongUnaryOperator mapper)

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

DoubleStream mapToDouble(LongToDoubleFunction mapper)

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

IntStream mapToInt(LongToIntFunction mapper)

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

<U> Stream<U> mapToObj(LongFunction<? extends U> mapper)

Возвращает объект-значения Stream, состоящий из результатов применения данной функции к элементам этого потока.

OptionalLong max()

Возвращает OptionalLong, описывающий максимальный элемент этого потока, или пустой Optional, если поток пустой.

OptionalLong min()

Возвращает OptionalLong, описывающий минимальный элемент этого потока, или пустой Optional, если поток пустой.

boolean noneMatch(LongPredicate predicate)

Возвращает true, если ни один элемент этого потока не соответствует предоставленному предикату.

static LongStream of(long... values)

Возвращает последовательный упорядоченный поток, содержащий указанные значения.

static LongStream of(long t)

Возвращает последовательный LongStream, содержащий один элемент.

LongStream parallel()

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

LongStream peek(LongConsumer action)

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

static LongStream range(long startInclusive, long endExclusive)

Возвращает последовательный упорядоченный LongStream от startInclusive (включительно) до endExclusive (исключительно) с шагом нарастания 1.

static LongStream rangeClosed(long startInclusive, long endInclusive)

Возвращает последовательный упорядоченный LongStream от startInclusive (включительно) до endInclusive (включительно) с шагом нарастания 1.

OptionalLong reduce(LongBinaryOperator op)

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

long reduce(long identity, LongBinaryOperator op)

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

LongStream sequential()

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

LongStream skip(long n)

Возвращает поток, содержащий оставшиеся элементы этого потока после отбрасывания первых n элементов потока.

LongStream sorted()

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

Spliterator.OfLong spliterator()

Возвращает разделитель для элементов этого потока.

long sum()

Возвращает сумму элементов в этом потоке.

LongSummaryStatistics summaryStatistics()

Возвращает LongSummaryStatistics, описывающий различные сводные данные об элементах этого потока.

long[] toArray()

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

Методы, унаследованные от интерфейса java.util.stream.BaseStream

close, isParallel, onClose, unordered

Методы

filter

LongStream filter(LongPredicate predicate)

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

Это промежуточная операция.

Параметры:
predicate - предикат невмешивающийся и бессостоятельный, применяемый к каждому элементу для определения, должен ли он быть включён
Возвращает:
новый поток

map

LongStream map(LongUnaryOperator mapper)

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

Это промежуточная операция.

Параметры:
mapper - невмешивающаяся и бессостоятельная функция, применяемая к каждому элементу
Возвращает:
новый поток

mapToObj

<U> Stream<U> mapToObj(LongFunction<? extends U> mapper)

Возвращает поток с объектами Stream, состоящий из результатов применения заданной функции к элементам этого потока.

Это промежуточная операция.

Параметры типа:
U - тип элемента нового потока
Параметры:
mapper - не вмешивающаяся, бессостоятельная функция, применяемая к каждому элементу
Возвращает:
новый поток

mapToInt

IntStream mapToInt(LongToIntFunction mapper)

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

Это промежуточная операция.

Параметры:
mapper - не вмешивающаяся, бессостоятельная функция, применяемая к каждому элементу
Возвращает:
новый поток

mapToDouble

DoubleStream mapToDouble(LongToDoubleFunction mapper)

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

Это промежуточная операция.

Параметры:
mapper - не вмешивающаяся, бессостоятельная функция, применяемая к каждому элементу
Возвращает:
новый поток

flatMap

LongStream flatMap(LongFunction<? extends LongStream> mapper)

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

Это промежуточная операция.

Параметры:
mapper - не вмешивающаяся, бессостоятельная функция, применяемая к каждому элементу, которая создаёт LongStream новых значений
Возвращает:
новый поток
См. также:
Stream.flatMap(Function)

distinct

LongStream distinct()

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

Это состоятельная промежуточная операция.

Возвращает:
новый поток

sorted

LongStream sorted()

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

Это состоятельная промежуточная операция.

Возвращает:
новый поток

peek

LongStream peek(LongConsumer action)

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

Это промежуточная операция.

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

Примечание API:
Этот метод существует в основном для отладки, где вы хотите увидеть элементы, поскольку они проходят определённую точку в конвейере:
LongStream.of(1, 2, 3, 4)
         .filter(e -> e > 2)
         .peek(e -> System.out.println("Filtered value: " + e))
         .map(e -> e * e)
         .peek(e -> System.out.println("Mapped value: " + e))
         .sum();
Параметры:
action - не вмешивающееся действие, выполняемое над элементами по мере их потребления из потока
Возвращает:
новый поток

limit

LongStream limit(long maxSize)

Возвращает поток, содержащий элементы этого потока, усечённые до длины не более maxSize.

Это короткозамкнутая состоятельная промежуточная операция.

Примечание API:
Хотя limit() обычно является недорогой операцией в последовательных потоковых конвейерах, она может быть довольно дорогой в упорядоченных параллельных конвейерах, особенно для больших значений maxSize, так как limit(n) ограничен возвращением не просто любых n элементов, а первых n элементов в порядке их появления. Использование неупорядоченного источника потока (например, generate(LongSupplier)) или удаление ограничения на порядок с помощью BaseStream.unordered() может привести к значительному ускорению limit() в параллельных конвейерах, если семантика вашей ситуации это допускает. Если требуется согласованность с порядком появления, и вы сталкиваетесь с плохой производительностью или использованием памяти с limit() в параллельных конвейерах, переключение на последовательное выполнение с помощью sequential() может улучшить производительность.
Параметры:
maxSize - количество элементов, до которого должен быть ограничен поток
Возвращает:
новый поток
Исключение:
IllegalArgumentException - если maxSize отрицательно

skip

LongStream skip(long n)

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

Это состоятельная промежуточная операция.

Примечание API:
Хотя skip() обычно является недорогой операцией в последовательных потоковых конвейерах, она может быть довольно дорогой в упорядоченных параллельных конвейерах, особенно для больших значений n, так как skip(n) ограничен пропусканием не просто любых n элементов, а первых n элементов в порядке их появления. Использование неупорядоченного источника потока (например, generate(LongSupplier)) или удаление ограничения на порядок с помощью BaseStream.unordered() может привести к значительному ускорению skip() в параллельных конвейерах, если семантика вашей ситуации это допускает. Если требуется согласованность с порядком появления, и вы сталкиваетесь с плохой производительностью или использованием памяти с skip() в параллельных конвейерах, переключение на последовательное выполнение с помощью sequential() может улучшить производительность.
Параметры:
n - количество ведущих элементов для пропуска
Возвращает:
новый поток
Исключение:
IllegalArgumentException - если n отрицательно

forEach

void forEach(LongConsumer action)

Выполняет действие над каждым элементом этого потока.

Это конечная операция.

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

Параметры:
action - не вмешивающееся действие, выполняемое над элементами

forEachOrdered

void forEachOrdered(LongConsumer action)

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

Это конечная операция.

Параметры:
action - не вмешивающееся действие, выполняемое над элементами
См. также:
forEach(LongConsumer)

toArray

long[] toArray()

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

Это конечная операция.

Возвращает:
массив, содержащий элементы этого потока

reduce

long reduce(long identity,
            LongBinaryOperator op)

Выполняет редукцию над элементами этого потока, используя предоставленное значение идентичности и ассоциативную функцию накопления и возвращает результирующее значение. Это эквивалентно:

long result = identity;
     for (long element : this stream)
         result = accumulator.applyAsLong(result, element)
     return result;
, но не ограничено выполнением последовательно.

Значение identity должно быть идентичностью для функции накопления. Это означает, что для всех x, accumulator.apply(identity, x) равно x. Функция accumulator должна быть ассоциативной функцией.

Это конечная операция.

Примечание API:
Sum, min, max и average — это все частные случаи сокращения. Суммирование потока чисел может быть выражено как:
long sum = integers.reduce(0, (a, b) -> a+b);
или более компактно:
long sum = integers.reduce(0, Long::sum);

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

Параметры:
identity — значение тождества для накапливающей функции
op — ассоциативная, не влияющая на состояние, бессостоятельная функция для объединения двух значений
Возвращаемое значение:
результат сокращения
См. также:
sum(), min(), max(), average()

reduce

OptionalLong reduce(LongBinaryOperator op)

Выполняет сокращение элементов этого потока, используя ассоциативную функцию накопления, и возвращает Optional, описывающий полученное значение, если оно есть. Это эквивалентно:

boolean foundAny = false;
     long result = null;
     for (long element : this stream) {
         if (!foundAny) {
             foundAny = true;
             result = element;
         }
         else
             result = accumulator.applyAsLong(result, element);
     }
     return foundAny ? OptionalLong.of(result) : OptionalLong.empty();
, но не ограничено последовательным выполнением.

Функция accumulator должна быть ассоциативной.

Это терминальная операция.

Параметры:
op — ассоциативная, не влияющая на состояние, бессостоятельная функция для объединения двух значений
Возвращаемое значение:
результат сокращения
См. также:
reduce(long, LongBinaryOperator)

collect

<R> R collect(Supplier<R> supplier,
              ObjLongConsumer<R> accumulator,
              BiConsumer<R,R> combiner)

Выполняет операцию мутабельного сокращения над элементами этого потока. Мутабельное сокращение — это сокращение, при котором результирующее значение является контейнером изменяемого результата, например, ArrayList, а элементы включаются путем обновления состояния результата, а не заменой результата. Это дает результат, эквивалентный:

R result = supplier.get();
     for (long element : this stream)
         accumulator.accept(result, element);
     return result;

Как и reduce(long, LongBinaryOperator), операции collect могут быть распараллелены без необходимости дополнительной синхронизации.

Это терминальная операция.

Тип параметров:
R — тип результата
Параметры:
supplier — функция, создающая новый контейнер результата. При параллельном выполнении эта функция может вызываться несколько раз и должна возвращать новое значение каждый раз.
accumulator — ассоциативная, не влияющая на состояние, бессостоятельная функция для включения дополнительного элемента в результат
combiner — ассоциативная, не влияющая на состояние, бессостоятельная функция для объединения двух значений, которая должна быть совместима с функцией накопления
Возвращаемое значение:
результат сокращения
См. также:
Stream.collect(Supplier, BiConsumer, BiConsumer)

sum

long sum()

Возвращает сумму элементов в этом потоке. Это частный случай сокращения и эквивалентно:

return reduce(0, Long::sum);

Это терминальная операция.

Возвращаемое значение:
сумма элементов в этом потоке

min

OptionalLong min()

Возвращает Optional, описывающий минимальный элемент этого потока, или пустой Optional, если этот поток пуст. Это частный случай сокращения и эквивалентно:

return reduce(Long::min);

Это терминальная операция.

Возвращаемое значение:
Optional, содержащий минимальный элемент этого потока, или пустой Optional, если поток пустой

max

OptionalLong max()

Возвращает Optional, описывающий максимальный элемент этого потока, или пустой Optional, если этот поток пуст. Это частный случай сокращения и эквивалентно:

return reduce(Long::max);

Это терминальная операция.

Возвращаемое значение:
Optional, содержащий максимальный элемент этого потока, или пустой Optional, если поток пустой

count

long count()

Возвращает количество элементов в этом потоке. Это частный случай сокращения и эквивалентно:

return map(e -> 1L).sum();

Это терминальная операция.

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

average

OptionalDouble average()

Возвращает Optional, описывающий среднее арифметическое элементов этого потока, или пустой Optional, если этот поток пуст. Это частный случай сокращения.

Это терминальная операция.

Возвращаемое значение:
Optional, содержащий среднее значение элементов этого потока, или пустой Optional, если поток пуст

summaryStatistics

LongSummaryStatistics summaryStatistics()

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

Это терминальная операция.

Возвращаемое значение:
SummaryStatistics, описывающая различные сводные данные об элементах этого потока

anyMatch

boolean anyMatch(LongPredicate predicate)

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

Это короткозамкнутая терминальная операция.

Примечание API:
Этот метод оценивает экзистенциальное квантификацию предиката над элементами потока (для некоторого x P(x)).
Параметры:
predicate — не влияющий на состояние, бессостоятельный предикат, применяемый к элементам этого потока
Возвращаемое значение:
true, если хотя бы один элемент потока удовлетворяет заданному предикату, в противном случае false

allMatch

boolean allMatch(LongPredicate predicate)

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

Это короткозамкнутая терминальная операция.

Примечание API:
Этот метод оценивает универсальное квантификацию предиката над элементами потока (для всех x P(x)). Если поток пуст, то квантификация считается пусто выполнимой и всегда возвращает true (независимо от P(x)).
Параметры:
predicate — не влияющий на состояние, бессостоятельный предикат, применяемый к элементам этого потока
Возвращаемое значение:
true, если все элементы потока удовлетворяют заданному предикату или поток пуст, в противном случае false

noneMatch

boolean noneMatch(LongPredicate predicate)

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

Это короткозамкнутая терминальная операция.

Примечание API:
Этот метод оценивает универсальное квантификацию отрицания предиката над элементами потока (для всех x ~P(x)). Если поток пуст, то квантификация считается пусто выполнимой и всегда возвращает true, независимо от P(x).
Параметры:
predicate — не влияющий на состояние, бессостоятельный предикат, применяемый к элементам этого потока
Возвращаемое значение:
true, если ни один элемент потока не удовлетворяет заданному предикату или поток пуст, в противном случае false

findFirst

OptionalLong findFirst()

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

Это короткозамкнутая терминальная операция.

Возвращаемое значение:
Optional, описывающий первый элемент этого потока, или пустой Optional, если поток пуст

findAny

OptionalLong findAny()

Возвращает OptionalLong, описывающую какой-то элемент потока, или пустой OptionalLong если поток пуст.

Это короткое терминальное действие.

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

Возвращает:
OptionalLong , описывающую какой-то элемент этого потока, или пустой OptionalLong , если поток пуст
См. также:
findFirst()

asDoubleStream

DoubleStream asDoubleStream()

Возвращает DoubleStream , состоящий из элементов этого потока, преобразованных в double.

Это промежуточная операция.

Возвращает:
DoubleStream , состоящий из элементов этого потока, преобразованных в double

boxed

Stream<Long> boxed()

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

Это промежуточная операция.

Возвращает:
Stream состоящий из элементов этого потока, каждый из которых упакован в Long

sequential

LongStream sequential()

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

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

Это промежуточная операция.

Указано в:
sequential в интерфейсе BaseStream<Long,LongStream>
Возвращает:
последовательный поток

parallel

LongStream parallel()

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

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

Это промежуточная операция.

Указано в:
parallel в интерфейсе BaseStream<Long,LongStream>
Возвращает:
параллельный поток

iterator

PrimitiveIterator.OfLong iterator()

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

Возвращает итератор для элементов этого потока.

Это терминальная операция.

Указано в:
iterator в интерфейсе BaseStream<Long,LongStream>
Возвращает:
итератор элементов для этого потока

spliterator

Spliterator.OfLong spliterator()

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

Возвращает разделитель для элементов этого потока.

Это терминальная операция.

Указано в:
spliterator в интерфейсе BaseStream<Long,LongStream>
Возвращает:
разделитель элементов для этого потока

builder

static LongStream.Builder builder()

Возвращает сборщик для LongStream.

Возвращает:
сборщик потока

empty

static LongStream empty()

Возвращает пустой последовательный LongStream.

Возвращает:
пустой последовательный поток

of

static LongStream of(long t)

Возвращает последовательный LongStream , содержащий один элемент.

Параметры:
t - единственный элемент
Возвращает:
последовательный поток-синглтон

of

static LongStream of(long... values)

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

Параметры:
values - элементы нового потока
Возвращает:
новый поток

iterate

static LongStream iterate(long seed,
                          LongUnaryOperator f)

Возвращает бесконечный упорядоченный последовательный LongStream , полученный путем итеративного применения функции f к начальному элементу seed, создавая Stream , состоящий из seed, f(seed), f(f(seed)) и т. д.

Первый элемент (позиция 0) в LongStream будет предоставленным seed. Для n > 0, элемент на позиции n, будет результатом применения функции f к элементу на позиции n - 1.

Параметры:
seed - начальный элемент
f - функция, применяемая к предыдущему элементу для получения нового элемента
Возвращает:
новый последовательный LongStream

generate

static LongStream generate(LongSupplier s)

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

Параметры:
s - LongSupplier для сгенерированных элементов
Возвращает:
новый бесконечный неупорядоченный последовательный LongStream

range

static LongStream range(long startInclusive,
                        long endExclusive)

Возвращает упорядоченный последовательный LongStream от startInclusive (включительно) до endExclusive (исключительно) с шагом увеличения 1.

Примечание API:

Эквивалентную последовательность возрастающих значений можно получить последовательно с помощью цикла for следующим образом:

for (long i = startInclusive; i < endExclusive ; i++) { ... }
Параметры:
startInclusive - начальное значение (включительно)
endExclusive - верхняя граница (исключительно)
Возвращает:
последовательный LongStream для диапазона long элементов

rangeClosed

static LongStream rangeClosed(long startInclusive,
                              long endInclusive)

Возвращает упорядоченный последовательный LongStream от startInclusive (включительно) до endInclusive (включительно) с шагом увеличения 1.

Примечание API:

Эквивалентную последовательность возрастающих значений можно получить последовательно с помощью цикла for следующим образом:

for (long i = startInclusive; i <= endInclusive ; i++) { ... }
Параметры:
startInclusive - начальное значение (включительно)
endInclusive - верхняя граница (включительно)
Возвращает:
последовательный LongStream для диапазона long элементов

concat

static LongStream concat(LongStream a,
                         LongStream b)

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

Примечание реализации:
Следует проявлять осторожность при конструировании потоков из многократных конкатенаций. Доступ к элементу глубоко конкатенированного потока может привести к глубоким цепочкам вызовов или даже к StackOverflowException.
Параметры:
a - первый поток
b - второй поток
Возвращает:
конкатенация двух входных потоков

© 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