如何在Java Stream中使用if/else逻辑

2023/05/31

1. 概述

在本教程中,我们将演示如何使用Java Stream实现if/else逻辑。作为本教程的一部分,我们将创建一个简单的算法来识别奇数和偶数。

2. forEach()中的常规if/else逻辑

首先,让我们创建一个Integer列表,然后在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,一个用于偶数,另一个用于奇数

4. 总结

在这篇简短的文章中,我们探讨了如何创建Java Stream以及如何使用forEach()方法实现if/else逻辑。

此外,我们还学习了如何使用Stream filter方法以更优雅的方式获得类似的结果。

与往常一样,本教程的完整源代码可在GitHub上获得。

Show Disqus Comments

Post Directory

扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章