Как использовать if/else Logic в Java 8 Streams

Как использовать if / else Logic в Java 8 Streams

1. обзор

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

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

2. Обычная логикаif/else в пределахforEach()

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

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);
        }
    });

Our forEach method contains if-else logic which verifies whether the Integer is an odd or even number с использованием оператора модуля Java.

3. if/else Логика сfilter()

Во-вторых, давайте посмотрим на более элегантную реализацию с использованием метода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()to separate the Integer List into two Streams, one for even integers and another for odd integers.

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

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

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

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