Перейти к основному содержимому

56 записей с тегом "Java Streams"

Посмотреть все теги

· 2 мин. чтения

1. Обзор

Обычно мы используем Java Stream API для обработки коллекций данных.

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

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

2. Как мы обычно суммируем поток

· 2 мин. чтения

1. Обзор

В этом руководстве мы собираемся продемонстрировать, как реализовать логику if/else с потоками Java 8 . В рамках этого руководства мы создадим простой алгоритм для определения нечетных и четных чисел.

Мы можем взглянуть на эту статью , чтобы наверстать упущенное в основах Java 8 Stream .

2. Обычная логика if/else внутри forEach()

Прежде всего, давайте создадим список целых чисел , а затем воспользуемся обычной логикой if/else в методе потока целых чисел forEach() :

· 4 мин. чтения

1. Обзор

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

2. Использование простой Java

Класс JDK 8 Stream имеет несколько полезных статических служебных методов. Давайте подробнее рассмотрим метод concat() .

2.1. Слияние двух потоков

· 3 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим использование метода Stream.count() . В частности, мы увидим, как мы можем комбинировать метод count() с методом filter() для подсчета совпадений с примененным предикатом .

2. Использование Stream.count()

Сам метод count() предоставляет небольшую, но очень полезную функциональность. Мы также можем превосходно комбинировать его с другими инструментами, например, с Stream.filter() .

Давайте используем тот же класс Customer , который мы определили в нашем руководстве для Stream.filter() :

· 4 мин. чтения

1. Введение

С момента появления Java 8 многие люди начали использовать (новую) функциональность потоков. Конечно, бывают моменты, когда наши потоковые операции не работают должным образом.

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

2. Диалоговое окно трассировки потока

Начнем с того, что покажем, как открыть диалоговое окно Stream Trace. На панели инструментов окна отладки есть значок Trace Current Stream Chain, который активируется только тогда, когда наше приложение приостанавливается в точке останова внутри вызова потокового API :

· 2 мин. чтения

1. Введение

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

Мы рассмотрим три разных подхода — два с использованием Java 8 и один с новой поддержкой в Java 9.

Мы будем работать с одним и тем же списком во всех примерах:

List<Optional<String>> listOfOptionals = Arrays.asList(
Optional.empty(), Optional.of("foo"), Optional.empty(), Optional.of("bar"));

2. Использование фильтра()

· 3 мин. чтения

1. Введение

Stream API был одной из ключевых функций, добавленных в Java 8.

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

2. Примитивные потоки

Потоки в основном работают с коллекциями объектов, а не с примитивными типами.

· 2 мин. чтения

1. Обзор

В этом кратком руководстве давайте преобразуем объект Java Iterable в поток и выполним над ним некоторые стандартные операции.

2. Преобразование Iterable в Stream

Интерфейс Iterable спроектирован с учетом универсальности и не предоставляет никакого метода stream() сам по себе.

Проще говоря, вы можете передать его методу StreamSupport.stream() и получить Stream из данного экземпляра Iterable .

· 2 мин. чтения

1. Обзор

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

2. Подготовка

Мы можем легко добавить данный элемент к потоку , вызвав статический поток. метод concat () :

@Test
public void givenStream_whenPrependingObject_thenPrepended() {
Stream<Integer> anStream = Stream.of(1, 2, 3, 4, 5);

Stream<Integer> newStream = Stream.concat(Stream.of(99), anStream);

assertEquals(newStream.findFirst().get(), (Integer) 99);
}

· 3 мин. чтения

1. Обзор

Потоки в Java 8 не являются коллекциями, и доступ к элементам с помощью их индексов невозможен, но есть несколько приемов, позволяющих сделать это возможным.

В этой короткой статье мы рассмотрим, как перебирать Stream с помощью IntStream, StreamUtils, EntryStream и Stream Vavr . ``

2. Использование простой Java

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