Java 从1元素集创建k元素集

Java 从1元素集创建k元素集,java,for-loop,data-mining,apriori,Java,For Loop,Data Mining,Apriori,我在java中声明了一个ArrayList a=[1,2,3,4,5]。我使用下面的循环创建了另一个ArrayList b: for(int i = 0; i<a.size(); i++) { for(int j=i+1; j<a.size();j++) { b.add("{" + a.get(i)+ "," + a.get(j) + "}"); } } for(int i=0;i 将其放在一个方法中,该方法需要两个集

我在java中声明了一个ArrayList a=[1,2,3,4,5]。我使用下面的循环创建了另一个ArrayList b:

for(int i = 0; i<a.size(); i++)
{
      for(int j=i+1; j<a.size();j++)
      {
              b.add("{" + a.get(i)+ "," + a.get(j) + "}");
      }
}
for(int i=0;i
  • 将其放在一个方法中,该方法需要两个集合
    s1
    s2
  • 要生成
    b
    ,只需使用
    (a,a)
    调用该方法即可
  • 要生成
    c
    ,只需使用
    (a,b)
    (b,a)
    调用该方法即可
  • 随意重复

  • 您只需添加一些逻辑,即可从集合中的项中删除
    }
    {
    。或者,完全不要放置它们,只用于打印结果。

    我编写了一个递归方法,为您生成一个数字数组的所有排列:

    public static void main(String ... args) {
        List<Integer> numbers= new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        numbers.add(5);
    
        for (int i=0; i<numbers.size(); i++) {
            dfs(numbers.get(i), numbers, new ArrayList<Integer>(), numbers.size(), 0);
        }
    }
    
    private static List<List<Integer>> resultOfResults= new ArrayList<>();
    
    private static void dfs(int startNumber, List<Integer> numbers, List<Integer> result, int depth, int currentDepth) {
        result.add(startNumber);
        for (int i= 0; i < numbers.size(); i++) {
            if (!result.contains(numbers.get(i))) {
                dfs(numbers.get(i), numbers, new ArrayList<Integer>(result), depth, currentDepth + 1);
            }
        }
        if (currentDepth + 1 == depth) { 
            resultOfResults.add(result);
            return;
        }
    }
    

    事实上,这是一个好主意。我没有考虑过一个……我会试试!!!谢谢!!我一定会试试!为什么会显示Java不支持菱形运算符的消息?它说我的源代码是1.6,并要求我使用源代码7。怎么做?啊哈,不要使用菱形运算符,而不要使用
    List number=new ArrayList();
    put
    List numbers=new ArrayList();
    同样适用于:而不是
    private static List resultOfResults=new ArrayList();
    put
    private static List resultOfResults=new ArrayList();
    我做了:private static List resultOfResult=new arrarylist();(不带菱形操作符)但我的问题不在于找到排列。正如我上面所说的。你能给我一个解决方案吗?
    for (List<Integer> result : resultOfResults) {
        System.out.println(Arrays.toString(result.toArray()));
    }