ホームページ >Java >&#&チュートリアル >参照と代入は Java の ArrayList コピーにどのような影響を与えますか?
Java 配列リストのコピー: 参照の動作を理解する
Java でコレクションを操作する場合、参照と代入の動作を理解することが重要です。 ArrayList オブジェクト l1 があり、その参照を新しい変数 l2 に割り当てる例を考えてみましょう。
Java での参照割り当て
Java では、オブジェクトに関係する代入操作は単にオブジェクト自体ではなく、オブジェクトの参照をコピーします。したがって、l1 が l2 に割り当てられると、l1 と l2 は両方とも同じ ArrayList オブジェクトを指します。 l1 または l2 を通じて行われた変更は両方の参照に反映されます。
例の図
提供されたコード スニペット内:
List<Integer> l1 = new ArrayList<>(); for (int i = 1; i <= 10; i++) { l1.add(i); } List l2 = l1; l2.clear();
l2 のリファレンスを使用して l1 がクリアされると、l1 リファレンスも影響を受けます。これは、l1 と l2 の両方が同じ ArrayList オブジェクトを指していることを示しています。
Java での浅いコピー
ArrayList オブジェクトのコピー (浅いオブジェクトとも呼ばれます) を作成するにはcopy) を使用して、特定の引数を指定して ArrayList コンストラクターを利用できます。
List<Integer> newList = new ArrayList<>(oldList);
このアプローチでは、 oldList 参照からの要素のコピーを含む新しい ArrayList オブジェクト。 newList に対する後続の変更は、oldList 参照には影響しません。また、その逆も同様です。
参照の仕組みを理解し、浅いコピーなどのテクニックを活用することで、Java でコレクションを効果的に操作し、データの整合性を確保し、意図しない結果を回避できます。
以上が参照と代入は Java の ArrayList コピーにどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。