ここに私が書いた特定の方法があります:
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();
}
}
}
}
このメソッドは、メイン関数から複数回呼び出されます。最後に、クラス変数の内容をファイルに書き込もうとします。しかし、これを行うと、inputTerms の内容として 0 を取得します。ただし、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になります**