首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java 排列组合解决思路

2013-09-18 
java 排列组合类似图片上的,很多查询条件,很多组合,请大神帮忙写一个排列组合程序,将查询条件的可能组合打

java 排列组合
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;
    }


[解决办法]
补充:
一、String flag="false";
   String sql=null;
if(品牌!=不限)
{
   flag="true";
   sql="select * from 表名 where 品牌=具体选的品牌";


}
二、if(类别!=不限)
{
   if(flag=="true")
   {
      sql=" and 类别=具体选择的类别";
   }
   else
   {
      flag="true"  //标识设为真,
      sql="select * from 表名 where 类别=具体选择的类别";
   }
}
三、if(蓝帽!=不限)
{
   ...//类似第二步
}
四、if(产地!=不限)
{
   ...//类似第二步
}
若不符合题意,请补充说明! 

热点排行