1. 概要

このチュートリアルでは、Java 8 Streamsを使用してif/elseロジックを実装する方法を示します。 チュートリアルの一部として、奇数と偶数を識別するための簡単なアルゴリズムを作成します。

この記事を見て、Java 8 Streamの基本に追いつくことができます。

2. forEach()内の従来の if /elseロジック

まず、整数リストを作成してから、整数ストリーム 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メソッドには、Javaモジュラス演算子を使用して整数が奇数か偶数かを確認するif-elseロジックが含まれています

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ロジックを実装し、整数リストを偶数の整数用と奇数の整数用の2つのストリームに分割しました。

4. 結論

このクイック記事では、Java 8 Stream を作成する方法と、 forEach()メソッドを使用してif/elseロジックを実装する方法について説明しました。

さらに、 Stream filter メソッドを使用して、よりエレガントな方法で同様の結果を達成する方法を学びました。

最後に、このチュートリアルで使用される完全なソースコードは、Githubから入手できます。