【发布时间】:2017-11-20 06:30:55
【问题描述】:
假设这样,我得到了一个 Integer Wraps Objects 数组...
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]
【问题讨论】:
-
为什么会有两次new关键字?
-
我对这个问题投了反对票,因为它似乎是一个零努力的需求转储。如果您可以 edit 您的问题向我们展示您的尝试 Minimal, Complete, and Verifiable example,或准确地澄清您遇到困难的地方,此反对票可能会被撤回。
-
@JoeC 我有递归问题,如何将
ArrayList[]放入generateTable方法。如果你能帮助我,对我来说很有价值。 -
@BrijRajKishore
List<Integer>[] arr = new ArrayList[p.length];用于声明 ArrayList 数组。初始化 ArrayListarr[i] = new ArrayList();
标签: java arrays recursion arraylist