Java8のStream API flatMapメソッドの使い方

Java8のStream API flatMapメソッドの使い方

flatMapメソッドを使って変換して平坦にします。listのlistを作成します。

この変数をflatMapメソッドで変換後に平坦にします。

package jp.co.confrage;

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

public class Sample {
  public static void main(String[] args) {
    List<Integer> a = Arrays.asList(10, 100);
    List<Integer> b = Arrays.asList(1, 3, 5);
    List<Integer> c = Arrays.asList(2, 4, 6);

    List<List<Integer>> nestedlist = Arrays.asList(a, b, c);
    System.out.println(nestedlist); // [[10, 100], [1, 3, 5], [2, 4, 6]]
    List<Integer> flatten =
      nestedlist.stream().flatMap(x -> x.stream()).collect(Collectors.toList()); // 注
    System.out.println(flatten); // [10, 100, 1, 3, 5, 2, 4, 6]
  }
}

flatMapの引数をx -> x.stream()として、各ストリームを一つのstreamに纏めています。

注:Java16から以下メソッド追加されました。

.collect(Collectors.toList());

.toList();

コメント

タイトルとURLをコピーしました