如何中止迭代Java Stream forEach
過濾Java中的可選流
Java 8並行流中的自定義線程池
合併Java流
map()和flatMap()之間的區別
Java流的字符串操作
如何使用索引迭代流
Java中將迭代器轉變爲流
如何在Java中獲取流的最後一個元素?
將字符串轉換為字符流
Java中的“流已被操作或關閉”異常
Java 8和無限流
如何向流中添加單個元素
Java 8中的原始類型流
在Java Stream API中有所不同
Java 9 Stream API的改進
Java Spliterator簡介
如何在Java 8流中使用if / else邏輯
Java 8謂詞鏈
具有Lambda表達式的Java流過濾器
用Java流求和
Java 8 Streams peek() API
與Map一起使用流
如何在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上獲得本教程中使用的完整源代碼。