java - 带有由组合填充的整数的 ArrayList 数组

标签 java arrays recursion arraylist

假设这样,我获得了一个整数包裹对象数组...

Integer[] p = new Integer[]{7, 5, 3, 2};  //Variable Length

现在,我想创建一个包含下一个相应值的 ArrayList 数组。

2
3
3, 2
5
5, 2
5, 3
5, 3, 2
7
7, 2
7, 3
7, 3, 2
7, 5
7, 5, 2
7, 5, 3, 2
7, 5, 3, 2

什么代码可以帮助我创建一个具有之前显示的值的数组?

在这段代码中我尝试生成:

  public static void generateTable(int index, int[] current, int[] values) {
    if(index == values.length) {
      for(int i = 0; i < values.length; i++) {
        System.out.print((current[i]) + " ");
      }
      System.out.println();
    } else {
        current[index] = 0;
        generateTable(index + 1, current, values);
        current[index] = values[index];
        generateTable(index + 1, current, values);
    }
  }

此代码仅显示我只想提取之前的组合(零值除外)的组合。

0 0 0 0 
0 0 0 2 
0 0 3 0 
0 0 3 2 
0 5 0 0 
0 5 0 2 
0 5 3 0 
0 5 3 2 
7 0 0 0 
7 0 0 2 
7 0 3 0 
7 0 3 2 
7 5 0 0 
7 5 0 2 
7 5 3 0 
7 5 3 2 

我用这段代码进行测试:

java.util.List<Integer>[] arr = new ArrayList[p.length];
for( int i = 0; i < p.length; i++) {
  arr[i] = new ArrayList();
  for (int j = 0; j <= i; j++) {
    arr[i].add(p[j]);
  }
  System.out.println(arr[i]);
}

之前代码的输出无法正常工作,不是递归的,并且不会显示省略的值,例如 [5, 3, 2][7, 5, 2] 等等!

[7]
[7, 5]
[7, 5, 3]
[7, 5, 3, 2]

最佳答案

而不是直接将数组转换为List。当您这样做时,0 也会被拾取并放入您的列表中。迭代数组的每个索引,仅查找非零元素并将它们放入列表中。这有帮助吗?

关于java - 带有由组合填充的整数的 ArrayList 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386203/

相关文章:

java - getString ("daterow") 返回从 10g 到 11g 的不同格式

javascript - 如何使用多个 api 调用填充数组?

Swift 递归枚举

java - 看来我可以*在定义之前引用一个字段*

java - 如何让 Graphics2D 对象在 Java 中准确跟随鼠标指针?

c++ - 将数组值保存到 double 变量中

javascript - 从 JSON 数组获取第一项时出现问题

java - 递归对象到 JSON

php - 为什么这个递归函数会这样工作?

java - 错误 : org. testng.TestNGException:在类路径中找不到类:EmpClass