java 排列组合
类似图片上的,很多查询条件,很多组合,请大神帮忙写一个排列组合程序,将查询条件的可能组合打印出来,谢谢了,分不多,请谅解! java,排列组合
[解决办法]
4个类别,
这个没什么好办法
4层for循环
至于多选的那个,就是C51+C52+C53+C54+C55种组合。求出该组合的所有可能为:http://blog.csdn.net/rzleilei/article/details/10461653
Cmn算法。
[解决办法]
他们之间没有关系吗?
[解决办法]
闲的无聊,写了一个,不知道结果对不对,仅供参考。
public static void main(String[] args) {
String[] array1 = new String[]{"汤……", "自……", "养……", "G……"};
List<List<String>> l1 = sub(array1);
String[] array2 = new String[]{"复……", "维……"};
List<List<String>> l2 = sub(array2);
String[] array3 = new String[]{"保……", "营……"};
String[] array4 = new String[]{"国产", "进口"};
for (int i = 0; i < array4.length; i++) {
for (int j = 0; j < array3.length; j++) {
for (int k = 0; k < l2.size(); k++) {
for (int l = 0; l < l1.size(); l++) {
System.out.println("p1 in " + l1.get(l));
System.out.println("p2 in " + l2.get(k));
System.out.println("p3=" + array3[j]);
System.out.println("p4=" + array4[i]);
System.out.println("******************");
}
}
}
}
}
public static List<List<String>> sub(String[] array) {
List<List<String>> list = new ArrayList<List<String>>();
int size = (int) Math.pow(2, array.length);
for (int i = 1; i < size; i++) {
List<String> item = new ArrayList<String>();
String str = String.format("%0" + array.length + "d", Integer.parseInt(Integer.toBinaryString(i)));
for (int j = 0; j < array.length; j++) {
if (str.charAt(j) == '1') {
item.add(array[j]);
}
}
list.add(item);
}
return list;
}
}
二、if(类别!=不限)
{
if(flag=="true")
{
sql=" and 类别=具体选择的类别";
}
else
{
flag="true" //标识设为真,
sql="select * from 表名 where 类别=具体选择的类别";
}
}
三、if(蓝帽!=不限)
{
...//类似第二步
}
四、if(产地!=不限)
{
...//类似第二步
}
若不符合题意,请补充说明!