はじめに
業務で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());
以上。