Java リストを結合する方法

Javaでリストを結合する方法です。

Java リストを結合する方法

Javaで2つのリストを1つにまとめる方法です。SQLなら簡単に解決できそうだけどね。

複数のリストを結合したい場合は、いくつか方法があります。

ここでは Javaでリストを結合するStream、List.addAll、Stream.flatMapの3つの方法について 紹介します。


Streamを使用する

Stream同士のリストを結合する方法です。

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

public class CombineLists {
  public static void main(String[] args) {
    List<String> list1 = Arrays.asList("hoge", "piyo", "fuga", "foo");
    List<String> list2 = Arrays.asList("bar", "baz", "saka");
    // Stream を使用して Java リストを結合する
    List<String> newList1 = Stream.concat( list1.stream(), list2.stream() )
      .collect( Collectors.toList() );
System.out.println(newList1); //[hoge, piyo, fuga, foo, bar, baz, saka]
  }
}

List.addAllを使用する

List.addAll()を使用して、リストを結合する方法です。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CombineLists {
  public static void main(String[] args) {
    List<String> list1 = Arrays.asList("hoge", "piyo", "fuga", "foo");
    List<String> list2 = Arrays.asList("bar", "baz", "saka");
    // List.addAll を使用して Java リストを結合する
    List<String> newList2 = new ArrayList<String>();
    newList2.addAll(list1);
    newList2.addAll(list2);
System.out.println(newList2); //[hoge, piyo, fuga, foo, bar, baz, saka]
  }
}

Stream.flatMapを使用する

Stream.flatMapを使用して、リストを結合する方法です。

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class CombineLists {
  public static void main(String[] args) {
    List<String> list1 = Arrays.asList("hoge", "piyo", "fuga", "foo");
    List<String> list2 = Arrays.asList("bar", "baz", "saka");
    //Stream.flatMap を使用して Java リストを結合する
    List<List<String>> outer = Arrays.asList(list1, list2);
    List<String> newList3 = outer.stream()
      .flatMap(lst -> lst.stream())
      .collect(Collectors.toList());
System.out.println(newList3); //[hoge, piyo, fuga, foo, bar, baz, saka]
  }
}

まとめ

Javaでリストを結合する方法を紹介しました。

ちなみにStream.concat()とdistinct()を組み合わせることで、重複要素を除外して結合できます。こちらは別の機会に紹介したいと思います。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。