I am trying to create a cartesian product method in java that accepts sets as arguments and returns a set pair. The code I have coverts the argumented sets to arrays and then does the cartesian product but i can't add it back to the set pair that i want to return. Is there an easier way to do this? Thanks in advance.
public static Set> cartesianProduct(Set a, Set b) {
Set> product = new HashSet>();
String[] arrayA = new String[100];
String[] arrayB= new String[100];
a.toArray(arrayA);
b.toArray(arrayB);
for(int i = 0; i < a.size(); i++){
for(int j = 0; j < b.size(); j++){
product.add(arrayA[i],arrayB[j]);
}
}
return product;
}
解決方案
this looks simpler,
public static Set> cartesianProduct(Set a, Set b) {
Set> product = new HashSet>();
for(S s : a) {
for(T t : b) {
product.add(new ImmutablePair(s,t));
}
}
return product;
}