LoginSignup
0
0

More than 1 year has passed since last update.

【Java】複数の配列(List)をStreamを利用して一つのListにまとめる

Last updated at Posted at 2022-08-14

はじめに

業務でJavaを使うことになったが、少しブランクがあるため、記事としてまとめる。

環境

Java:11

準備

実際の業務では、DBから取得した半角スペース区切りの文字列(2カラム分)を配列化し、一つのListに格納する処理が必要であったため、配列の部分から記述する。

String column1 = "あああ いいい ううう";
String column2 = "えええ おおお";

// NULLか空の場合は長さ0の配列を代入
String[] column1Array = column1.isEmpty()
    ? new String[0]
    : column1.split(" ");

// NULLか空以外の場合は半角スペース区切りの文字列を
String[] column2Array = column2.isEmpty()
    ? new String[0]
    : column2.split(" ");

複数(2つ)の配列を一つのListにまとめる

// 上記で準備した配列をListにまとめる
List<String> tests = Stream.concat(
        Arrays.stream(column1),
        Arrays.stream(column2))
    .collect(Collectors.toList());

これで上記二つの配列を一つのListにまとめることが出来た。
また、例では配列を扱ったが、複数のListを一つのListにまとめる場合は以下のようにすれば可能。

List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();

List<String> tests = Stream.concat(
        list1.stream(),
        list2.stream())
    .collect(Collectors.toList());

備考:複数(3つ以上)の配列を一つのListにまとめる

String[] column1Array = "あああ いいい ううう".split(" ");
String[] column2Array = "えええ おおお".split(" ");
String[] column3Array = "かかか ききき".split(" ");
List<String> list = Stream.of(
        column1Array,
        column2Array,
        column3Array)
    .flatMap(array -> Arrays.stream(array))
    .collect(Collectors.toList());

以上。

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0