## 1.概述。

In this tutorial, we’re going to demonstrate how to implement if/else logic with Java 8 Streams. As part of the tutorial, we’ll create a simple algorithm to identify odd and even numbers.

We can take a look at this article to catch up on the Java 8 Stream basics.

## 2.传统的if/else逻辑在forEach()中的应用

First of all, let’s create an Integer List and then use conventional if/else logic within the Integer stream forEach() method:

``````List<Integer> 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 using the Java modulus operator.

## 3.if/else逻辑与filter()

Secondly, let’s look at a more elegant implementation using the Stream filter() method:

``````Stream<Integer> evenIntegers = ints.stream()
.filter(i -> i.intValue() % 2 == 0);
Stream<Integer> 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));``````

Above we implemented the if/else logic using the Stream filter() method to separate the Integer List into two Streams, one for even integers and another for odd integers.

## 4.结论。

In this quick article, we’ve explored how to create a Java 8 Stream and how to implement if/else logic using the forEach() method.

Furthermore, we learned how to use the Stream filter method to achieve a similar result, in a more elegant manner.

Finally, the complete source code used in this tutorial is available over on Github.