Spec-Zone.ru › OpenJDK 8

Интерфейс DoubleStream

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

public interface DoubleStream
extends BaseStream<Double,DoubleStream>

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

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

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

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

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

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

Методы

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

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

boolean anyMatch(DoublePredicate predicate)

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

OptionalDouble average()

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

Stream<Double> boxed()

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

static DoubleStream.Builder builder()

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

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

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

static DoubleStream concat(DoubleStream a, DoubleStream b)

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

long count()

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

DoubleStream distinct()

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

static DoubleStream empty()

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

DoubleStream filter(DoublePredicate predicate)

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

OptionalDouble findAny()

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

OptionalDouble findFirst()

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

DoubleStream flatMap(DoubleFunction<? extends DoubleStream> mapper)

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

void forEach(DoubleConsumer action)

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

void forEachOrdered(DoubleConsumer action)

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

static DoubleStream generate(DoubleSupplier s)

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

static DoubleStream iterate(double seed, DoubleUnaryOperator f)

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

PrimitiveIterator.OfDouble iterator()

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

DoubleStream limit(long maxSize)

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

DoubleStream map(DoubleUnaryOperator mapper)

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

IntStream mapToInt(DoubleToIntFunction mapper)

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

LongStream mapToLong(DoubleToLongFunction mapper)

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

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

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

OptionalDouble max()

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

OptionalDouble min()

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

boolean noneMatch(DoublePredicate predicate)

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

static DoubleStream of(double... values)

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

static DoubleStream of(double t)

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

DoubleStream parallel()

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

DoubleStream peek(DoubleConsumer action)

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

OptionalDouble reduce(DoubleBinaryOperator op)

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

double reduce(double identity, DoubleBinaryOperator op)

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

DoubleStream sequential()

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

DoubleStream skip(long n)

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

DoubleStream sorted()

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

Spliterator.OfDouble spliterator()

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

double sum()

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

DoubleSummaryStatistics summaryStatistics()

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

double[] toArray()

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

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

close, isParallel, onClose, unordered

Методы

filter

DoubleStream filter(DoublePredicate predicate)

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

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

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

map

DoubleStream map(DoubleUnaryOperator mapper)

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

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

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

mapToObj

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

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

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

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

mapToInt

IntStream mapToInt(DoubleToIntFunction mapper)

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

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

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

mapToLong

LongStream mapToLong(DoubleToLongFunction mapper)

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

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

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

flatMap

DoubleStream flatMap(DoubleFunction<? extends DoubleStream> mapper)

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

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

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

distinct

DoubleStream distinct()

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

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

Возвращает:
результирующий поток

sorted

DoubleStream sorted()

Возвращает поток, содержащий элементы этого потока в отсортированном порядке. Элементы сравниваются на равенство в соответствии с Double.compare(double, double).

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

Возвращает:
результирующий поток

peek

DoubleStream peek(DoubleConsumer action)

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

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

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

Примечание API:
Этот метод существует в основном для отладки, где вы хотите увидеть элементы, поскольку они проходят определенную точку в конвейере:
DoubleStream.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

DoubleStream limit(long maxSize)

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

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

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

skip

DoubleStream skip(long n)

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

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

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

forEach

void forEach(DoubleConsumer action)

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

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

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

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

forEachOrdered

void forEachOrdered(DoubleConsumer action)

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

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

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

toArray

double[] toArray()

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

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

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

reduce

double reduce(double identity,
              DoubleBinaryOperator op)

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

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

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

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

Примечание API:
Сумма, минимум, максимум и среднее значение являются частными случаями сведения. Вычисление суммы потока чисел может быть выражено как:
double sum = numbers.reduce(0, (a, b) -> a+b);
или более компактно:
double sum = numbers.reduce(0, Double::sum);

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

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

reduce

OptionalDouble reduce(DoubleBinaryOperator op)

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

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

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

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

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

collect

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

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

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

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

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

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

sum

double sum()

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

return reduce(0, Double::sum);
Однако, поскольку суммирование с плавающей точкой не является точным, вышеуказанный код не обязательно эквивалентен вычислению суммы, выполненному этим методом.

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

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

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

min

OptionalDouble min()

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

return reduce(Double::min);

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

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

max

OptionalDouble max()

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

return reduce(Double::max);

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

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

count

long count()

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

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

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

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

average

OptionalDouble average()

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

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

Среднее значение является частным случаем сведения.

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

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

summaryStatistics

DoubleSummaryStatistics summaryStatistics()

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

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

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

anyMatch

boolean anyMatch(DoublePredicate predicate)

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

Это конечная операция короткого замыкания.

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

allMatch

boolean allMatch(DoublePredicate predicate)

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

Это конечная операция короткого замыкания.

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

noneMatch

boolean noneMatch(DoublePredicate predicate)

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

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

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

findFirst

OptionalDouble findFirst()

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

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

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

findAny

OptionalDouble findAny()

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

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

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

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

boxed

Stream<Double> boxed()

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

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

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

sequential

DoubleStream sequential()

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

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

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

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

parallel

DoubleStream parallel()

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

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

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

Определено в:
parallel в интерфейсе BaseStream<Double,DoubleStream>
Возвращает:
параллельный поток

iterator

PrimitiveIterator.OfDouble iterator()

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

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

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

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

spliterator

Spliterator.OfDouble spliterator()

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

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

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

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

builder

static DoubleStream.Builder builder()

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

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

empty

static DoubleStream empty()

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

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

of

static DoubleStream of(double t)

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

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

of

static DoubleStream of(double... values)

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

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

iterate

static DoubleStream iterate(double seed,
                            DoubleUnaryOperator f)

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

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

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

generate

static DoubleStream generate(DoubleSupplier s)

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

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

concat

static DoubleStream concat(DoubleStream a,
                           DoubleStream 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