java8flatMap方法的妙用

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

import static java.util.stream.Collectors.toList;

public class Test {
    public static void main(String[] args) {
        List<Integer> numbers1 = Arrays.asList(1, 2, 3);
        List<Integer> numbers2 = Arrays.asList(3, 4);
        //[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]
        List<int[]> pairs = numbers1.stream().flatMap(i -> numbers2.stream().map(j -> new int[]{i, j})).collect(toList());
        //[(2, 4), (3, 3)]
        List<int[]> collect = numbers1.stream().flatMap(i -> numbers2.stream().filter(j -> (i + j) % 3 == 0).map(j -> new int[]{i, j})).collect(toList());
        for (int[] ints : collect) {
            System.out.println(Arrays.toString(ints));
        }
    }
}

 

posted @ 2022-06-21 16:39  WPMA  阅读(722)  评论(0)    收藏  举报