【Java】List.ofで作られたリストをStreamで結合する

こんにちは。
いつものtaanatsuです。
PHPerによるJava奮闘記録です。

Javaのリスト( List<T> )はミュータブル(後から変更可能)な変数を作成しますが、
List.of でリストを作るとイミュータブル(後から変更不可能)な変数になります。

このときに .addAll()などでデータを追加しようとすると、変更不可能な変数なのでもちろん怒られます。

イミュータブルなリスト変数にデータを後から追加したい場合は、変数の作り直しを行う必要があるのですが、
Streamを使うと結構簡単にリスト同士を結合できることを知りました。

import java.util.List;
import java.util.stream.Stream;

public class test {
    public static void main(String[] args) {
        List<Integer> numberList = List.of(1, 2, 3, 4, 5);
        List<Integer> numberList2 = List.of(6, 7, 8, 9, 10);

        //////////////// ↓ ここ ↓ ////////////////
        List<Integer> result = Stream
                .concat(numberList.stream(), numberList2.stream())
                .toList();

        System.out.println(result);
        // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    }
}

まだまだ勉強が足りぬ。。。
精進していきます!

ではまた次回