Как использовать 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.