Java 8 Stream使用If-else逻辑

2021-08-31 16:08:24 浏览数 (1)

在stream找那个传统的if else用法

代码语言:javascript复制
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);
        }
    });

不太优雅,可以使用filter代替

代码语言:javascript复制
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));

英文原文:https://www.baeldung.com/java-8-streams-if-else-logic

0 人点赞