0

次のようなプログラムでは:

ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> temp=new ArrayList<Integer>();

使用する場合、結果に一時を追加したい

result.add(new ArrayList<Integer>(temp));

最終出力は正しいですが、使用すると

result.add(temp);

私の最終出力は間違っています。なんで?助けてくれてありがとう!

4

2 に答える 2

0

電話すると:

result.add(new ArrayList<Integer>(temp));

temp新しい ArrayList にコピーされ、最終結果には「変更されていない」コピーが含まれます。

次のように呼び出します。

result.add(temp)


tempにそれ自体を追加しているresultため、後で実行するアクションtempが反映されますresult(これは、説明した望ましくない動作です)。

于 2013-11-11T02:55:31.113 に答える