【Java】Streamのreduceを使用して、値の更新メソッドを作成してみた

今回は最近知ったStreamのreduce関数を使用して値更新のメソッドを作成してみました

以下の仕様の際に使用してみてください!

  1. リスト内の値が古い順に更新されること(新しいものが残るようにする)
  2. 「null」の場合は前回のnullでない値を保持する

以下の場合、「animal」変数の中身は「dog」→ 「cat」→「pig」と入れ替えが発生 し、最終値には「pig」となります

public class SampleClass {
    public void main(String[] args) {

        List<String> animalList = Arrays.asList("dog", "cat", null, "pig", null);

        Optional<String> animal = animalList
                .stream()
                .reduce((beforeAnimal, thisAnimal) 
                        -> Objects.isNull(thisAnimal) ? beforeAnimal : thisAnimal);

        System.out.println(animal);

    }
}
// 「[pig]」が出力されます。

reduce便利ですね

他にもさまざまなメソッドやアルゴリズムが作成できそうです

是非フォローしてください

最新の情報をお伝えします

コメントを残す