原 java 8 Lambda实现两个list的笛卡尔积
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1282
一:代码如下。
package com.mszl.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Test11 {
public static void main(String[] args) {
List<String> colorList = Arrays.asList("张三", "李四", "王五");
List<String> sizeList = Arrays.asList("25岁", "40岁");
List<String> descartesList = descartes(colorList, sizeList);
descartesList.forEach(System.out::println);
}
public static List<String> descartes(List<String>... lists) {
List<String> tempList = new ArrayList<>();
for (List<String> list : lists) {
if (tempList.isEmpty()) {
tempList = list;
} else {
tempList = tempList.stream().flatMap(item -> list.stream().map(item2 -> item + " " + item2)).collect(Collectors.toList());
}
}
return tempList;
}
}
执行结果:
张三 25岁
张三 40岁
李四 25岁
李四 40岁
王五 25岁
王五 40岁
2020-10-28 14:06:30 阅读(5003)
名师出品,必属精品 https://www.91mszl.com
博主信息