Java中可以使用兩層循環來實現笛卡爾積算法。
假設有兩個集合A和B,笛卡爾積就是將A中的每個元素與B中的每個元素進行組合,得到一個新的集合。
以下是實現笛卡爾積算法的Java代碼示例:
import java.util.ArrayList;
import java.util.List;
public class CartesianProduct {
public static void main(String[] args) {
List<Integer> setA = new ArrayList<>();
setA.add(1);
setA.add(2);
List<Character> setB = new ArrayList<>();
setB.add('a');
setB.add('b');
List<String> cartesianProduct = getCartesianProduct(setA, setB);
System.out.println(cartesianProduct);
}
public static List<String> getCartesianProduct(List<Integer> setA, List<Character> setB) {
List<String> cartesianProduct = new ArrayList<>();
for (Integer elementA : setA) {
for (Character elementB : setB) {
String product = elementA.toString() + elementB.toString();
cartesianProduct.add(product);
}
}
return cartesianProduct;
}
}
在上述示例中,我們定義了兩個集合setA和setB,分別包含了整數和字符。通過調用getCartesianProduct()
方法,傳入這兩個集合,即可得到它們的笛卡爾積。
輸出結果為:[1a, 1b, 2a, 2b],即為集合setA和setB的笛卡爾積。