Как да използвам if / else логика в Java 8 Streams

1. Общ преглед

В този урок ще демонстрираме как да внедрим логиката if / else с Java 8 Streams . Като част от урока ще създадем прост алгоритъм за идентифициране на нечетни и четни числа.

Можем да разгледаме тази статия, за да наваксаме с основите на Java 8 Stream .

2. Конвенционална if / else логика в рамките на forEach ()

На първо място, нека създадем Integer List и след това да използваме конвенционална логика if / else в потока Integer 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); } });

Нашият метод forEach съдържа if-else логика, която проверява дали Integer е нечетно или четно число, използвайки оператора на модула Java.

3. if / else Logic With 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 () , за да отделим целочислен списък на два потока , един за четни цели и друг за нечетни цели числа.

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

В тази бърза статия разгледахме как да създадем Java 8 Stream и как да внедрим логиката if / else, използвайки метода forEach () .

Освен това научихме как да използваме метода на поточния филтър , за да постигнем подобен резултат, по по-елегантен начин.

И накрая, пълният изходен код, използван в този урок, е наличен в Github.