import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class MainSrc {
public static List<String> getList(String[][] a) {
Random r = new Random();
List<String> strs = new ArrayList<String>();
int n = 1;
// 计算共有多少种情况 总数为所有数组长度的积
for (int i = 0; i < a.length; i++) {
n *= a[i].length;
}
for (int i = 0; i < n; i++) {
String c = "";
for (int j = 0; j < a.length; j++) {
// 每一个数组里取一个随机元素
int index = r.nextInt(a[j].length);// 随机数的范围是这个数组的长度
c += a[j][index];
}
// 判断集合中是否含有这个元素,有则总数+1,无则添加到这个集合中
if (strs.contains(c)) {
n++;
} else {
strs.add(c);
}
}
Collections.sort(strs);// 最后排序一下
return strs;
}
public static void main(String[] args) {
ArrayList<String> color = new ArrayList<>();
for (int i = 0; i < 10; i++) {
color.add("color" + i);
}
ArrayList<String> size = new ArrayList<>();
for (int i = 0; i < 8; i++) {
size.add("size" + i);
}
InnerAttr colors = new InnerAttr();
colors.setAttr(color);
InnerAttr sizes = new InnerAttr();
sizes.setAttr(size);
ArrayList<InnerAttr> allAttr = new ArrayList<>();
allAttr.add(colors);
allAttr.add(sizes);
Attr attr = new Attr();
attr.setAllAttr(allAttr);
System.out.println(attr.toString());
String[][] attrRes=new String[attr.getAllAttr().size()][];
for (int j=0; j < attr.getAllAttr().size(); j++) {
attrRes[j]=new String[attr.getAllAttr().get(j).getAttr().size()];
for(int k=0;k<attr.getAllAttr().get(j).getAttr().size();k++){
attrRes[j][k]=attr.getAllAttr().get(j).getAttr().get(k);
}
}
List<String> strs = getList(attrRes);
for (String s : strs) {
System.out.println(s);
}
}
}