这是我写的一个特殊方法:
class A {
private static ArrayList<ArrayList<Integer>> inputTerms = new ArrayList<ArrayList<Integer>();
public static void method1(ArrayList<Integer> terms) {
ArrayList<Integer> clauses = new ArrayList<Integer>();
int N = terms.size();
for (int i = 0; i < N - 1; i++) {
for (int j = i + 1; j < N; j++) {
clauses.add(-terms.get(i));
clauses.add(-terms.get(j));
inputTerms.add(clauses);
clauses.clear();
}
}
}
}
从主函数多次调用此方法。最后,我尝试将类变量的内容写入文件。但是,当我这样做时,我得到 0 作为 inputTerms 的内容。但是,如果我删除了 Clauses.clear() 行,我可以获得适当的值。
我的程序是这样的,在添加到 inputTerms 之后清除子句对我来说至关重要。有没有其他选择?
**嗯..我已经按照你的建议做了。但是,我还没有完全克服这个问题。为了提供更多背景知识,在我的主要功能中,我有以下代码:
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);
}
对于“i”和“j”的不同组合,我必须调用 method1 函数 4 次。但是,当我使用上述建议时,我仍然得到 0**