如何在Java 8流中使用if / else邏輯

1.概述

在本教程中,我們將演示如何使用Java 8 Streams實現if / else邏輯。作為本教程的一部分,我們將創建一個簡單的算法來識別奇數和偶數。

我們可以看一下本文,以了解Java 8 Stream基礎知識。

2. forEach()常規if/else邏輯

首先,讓我們創建一個Integer List ,然後在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 8 Stream以及如何使用forEach()方法實現if / else邏輯。

此外,我們學習瞭如何使用Stream filter方法以更優雅的方式獲得相似的結果。

最後,可以在Github上獲得本教程中使用的完整源代碼。