Рубрики
Без рубрики

Как использовать логику if/else в потоках Java 8

Узнайте, как применить логику if/else к потокам Java 8.

Автор оригинала: baeldung.

1. Обзор

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

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

2. Обычная Логика if/else В forEach()

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

List ints = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

ints.stream()
    .forEach(i -> {
        if (i.intValue() % 2 == 0) {
            Assert.assertTrue(i.intValue() % 2 == 0);
        } else {
            Assert.assertTrue(i.intValue() % 2 != 0);
        }
    });

Out для каждого метода содержит логику if-else, которая проверяет, является ли Целое число нечетным или четным числом с помощью оператора модуля Java.

3. логика if/else С фильтром()

Во-вторых, давайте рассмотрим более элегантную реализацию с использованием метода Stream filter() :

Stream evenIntegers = ints.stream()
    .filter(i -> i.intValue() % 2 == 0);
Stream oddIntegers = ints.stream()
    .filter(i -> i.intValue() % 2 != 0);

evenIntegers.forEach(i -> Assert.assertTrue(i.intValue() % 2 == 0));
oddIntegers.forEach(i -> Assert.assertTrue(i.intValue() % 2 != 0));

Выше мы реализовали логику if/else, используя метод Stream filter() для разделения списка Целых чисел на два Потока , один для четных целых чисел, а другой для нечетных целых чисел.

4. Заключение

В этой краткой статье мы рассмотрели, как создать Java 8 Stream и как реализовать логику if/else с помощью метода forEach () .

Кроме того, мы узнали, как использовать метод Stream filter для достижения аналогичного результата более элегантным способом.

Наконец, полный исходный код, используемый в этом учебнике, доступен на Github .