笛卡尔积代码Java
时间: 2024-09-25 15:01:10 浏览: 30
笛卡尔积是指两个集合之间元素的所有可能组合,每个组合由两个集合中的一个元素组成。在Java中,我们可以使用`Stream` API和嵌套循环来计算两个集合的笛卡尔积。这里是一个简单的例子:
```java
import java.util.Arrays;
import java.util.stream.Collectors;
public List<List<String>> cartesianProduct(String[] set1, String[] set2) {
return Arrays.stream(set1)
.flatMap(s -> Arrays.stream(set2).map(s2 -> Arrays.asList(s, s2)))
.collect(Collectors.toList());
}
// 示例:
String[] set1 = {"A", "B"};
String[] set2 = {"X", "Y", "Z"};
List<List<String>> product = cartesianProduct(set1, set2);
System.out.println(product); // 输出:[ [A, X], [A, Y], [A, Z], [B, X], [B, Y], [B, Z] ]
```
在这个代码中,我们首先将第一个集合转换成一系列流(`stream()`),然后对每个元素应用流操作,将第二个集合也转换成流并生成一个包含两者元素的新列表。最后使用`Collectors.toList()`收集所有结果。