91名师指路-头部
91名师指路

java 8 Lambda实现两个list的笛卡尔积

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

一:代码如下。

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     阅读(4675)

名师出品,必属精品    https://www.91mszl.com

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部