【Java】Streamのreduceを使用して、値の更新メソッドを作成してみた
今回は最近知ったStreamのreduce関数を使用して値更新のメソッドを作成してみました
以下の仕様の際に使用してみてください!
- リスト内の値が古い順に更新されること(新しいものが残るようにする)
- 「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便利ですね
他にもさまざまなメソッドやアルゴリズムが作成できそうです
是非フォローしてください
最新の情報をお伝えします