这是我编写的一个特定方法:
class A {
private static ArrayList<ArrayList<Integer>> inputTerms =
new ArrayList<ArrayList<Integer>();
public static void method1(ArrayList<Integer> terms) {
int N = terms.size();
for (int i = 0; i < N - 1; i++) {
for (int j = i + 1; j < N; j++) {
ArrayList<Integer> clauses = new ArrayList<Integer>();
clauses.add(-terms.get(i));
clauses.add(-terms.get(j));
inputTerms.add(clauses);
}
}
}
}
在我的主函数中,我有以下代码:
for (int i=0; i<N-1; i++){
ArrayList<Integer> firstdiagonalTerms = new ArrayList<Integer>();
for (int j=0; j<N-i; j++){
firstdiagonalTerms.add(variable[j][i+j]);
}
method1(firstdiagonalTerms);
}
我的主函数中有 4 个这样的双 for 循环,我在其中调用 method1 进行不同的迭代。 然而,虽然第一个 for 循环给出了适当的答案,但当我在第二个 for 循环中声明 ArrayList 时,我的 inputTerns 变量被设置为 null。我该如何克服这个问题?
最佳答案
我不明白你想在这里实现什么目标。但你绝对可以创建 ArrayList 的 ArrayList。
public class Testapp {
static ArrayList<ArrayList<Integer>> inputTerms = new ArrayList<ArrayList<Integer>>();
public static void main(String[] args) {
int outerlist = 3;
int innerlist = 5;
for(int i=0; i<outerlist; i++)
{
ArrayList<Integer> list = new ArrayList<Integer>();
for(int j=0; j<innerlist; j++)
{
list.add(j);
}
inputTerms.add(list);
}
Iterator outi = inputTerms.iterator();
while(outi.hasNext()){
ArrayList<Integer> temp = (ArrayList<Integer>)outi.next();
Iterator ini = temp.iterator();
while(ini.hasNext()){
System.out.print(ini.next());
}
System.out.println();
}
}
}
输出:
01234
01234
01234
关于java - ArrayList 的 ArrayList.. 无法多次引用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269121/