Java 8流中的if else逻辑
Contents
1. 概述
在本教程中,我们将演示如何使用 Java 8 Streams实现 if/else 逻辑。作为教程的一部分,我们将创建一个简单的算法来识别奇数和偶数。 我们可以看看这篇文章 来了解 Java 8 Stream基础知识。
2. forEach() 中的常规if/else逻辑
首先,让我们创建一个整数列表,然后在 Integer 流 *forEach()*方法中使用常规的 if/else 逻辑:
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);
}
});
我们的forEach方法包含 if-else 逻辑,该逻辑使用 Java 模运算符验证Integer是奇数还是偶数。
3. if/else逻辑与filter()
其次,让我们看一个使用*Stream filter()*方法的更优雅的实现:
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));
上面我们使用Stream filter()方法实现了 if/else 逻辑,将Integer List分成两个Stream,一个用于偶数,另一个用于奇数。