import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static java.util.stream.Collectors.toList;
/**
* cartesian product
*
* @author ZXD
* @date 2023/4/19
*/
public class Product {
public static void main(String[] args) {
List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("1", "2");
List<String> result = product(list1, list2);
result.forEach(System.out::println);
}
/**
* @param lists 可变长度参数列表
* */
public static List<String> product(List<String>... lists) {
List<String> temp = new ArrayList<>();
for (List<String> list : lists) {
if (temp.isEmpty()) {
temp = list;
} else {
// stream流 flatMap 和 map 方法
temp = temp.stream().flatMap(o1 -> list.stream().map(o2 -> o1 + " " + o2)).collect(toList());
}
}
return temp;
}
}
【java】笛卡尔积
最新推荐文章于 2025-03-20 16:18:13 发布