废话不多说系列,直接开搞 ~
(1)核心代码展示
public static void main(String[] args) {
List<String> colorList = Arrays.asList("红色", "黑色", "金色");
List<String> sizeList = Arrays.asList("5", "5");
List<String> placeList = Arrays.asList("18", "19");
List<String> descartesList = genDescartes(colorList, sizeList, placeList);
System.out.println(descartesList);
}
/**
* 得到笛卡尔积
*
* @param lists 多个数组
* @return 笛卡尔积
*/
private List<String> genDescartes(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;
}
(2)测试结果实例
至此,感谢阅读🙏!