温馨提示×

如何高效地计算Java中的笛卡尔积

小樊
103
2024-08-11 00:49:42
栏目: 编程语言

在Java中,可以使用嵌套循环来计算笛卡尔积。具体步骤如下:

  1. 创建一个二维数组来存储笛卡尔积的结果。数组的行数为两个集合的大小的乘积,列数为2(代表两个集合)。

  2. 使用嵌套循环遍历两个集合的所有元素,将每对元素组合添加到结果数组中。

下面是一个示例代码:

import java.util.ArrayList;
import java.util.List;

public class CartesianProduct {
    public static List<List<Integer>> cartesianProduct(List<Integer> set1, List<Integer> set2) {
        List<List<Integer>> result = new ArrayList<>();

        for (Integer i : set1) {
            for (Integer j : set2) {
                List<Integer> pair = new ArrayList<>();
                pair.add(i);
                pair.add(j);
                result.add(pair);
            }
        }

        return result;
    }

    public static void main(String[] args) {
        List<Integer> set1 = List.of(1, 2, 3);
        List<Integer> set2 = List.of(4, 5);

        List<List<Integer>> cartesianProduct = cartesianProduct(set1, set2);

        for (List<Integer> pair : cartesianProduct) {
            System.out.println(pair);
        }
    }
}

运行以上代码,将得到集合{1, 4}、{1, 5}、{2, 4}、{2, 5}、{3, 4}、{3, 5}的笛卡尔积。

0