假设这样,我获得了一个整数包裹对象数组...
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/