ホームページ  >  記事  >  Java  >  Java の ArrayList 割り当てはコピーまたは共有参照を作成しますか?

Java の ArrayList 割り当てはコピーまたは共有参照を作成しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-19 06:52:02572ブラウズ

Does Java's ArrayList Assignment Create a Copy or a Shared Reference?

Java での ArrayList オブジェクトのコピー

Java では、ArrayList は、指定された型の要素を格納するために使用できる動的配列です。 ArrayList を操作する場合、代入の動作を理解することが重要です。

質問: 共有参照またはコピー?

10 個の要素を持つ ArrayList l1 があり、それを別の変数 l2 に代入するとします。 l1 と l2 は同じ ArrayList オブジェクトを指していますか? それとも、オブジェクトのコピーが l2 に割り当てられていますか?

答え: 共有参照

Java の代入は、単に変数の値をコピーするだけです。この場合は、ArrayList オブジェクトへの参照です。結果として、l1 と l2 はどちらも同じ ArrayList オブジェクトを参照します。

例:

List<Integer> l1 = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
    l1.add(i);
}

List l2 = l1;
l2.clear();

この場合、両方とも同じを指しているため、l2 をクリアすると l1 にも影響します。 object.

コピーの作成

ArrayList オブジェクトのコピーを作成するには、新しい ArrayList を作成し、元のリストの要素を新しいリストに追加することで、浅いコピーを作成できます。

List<Integer> newList = new ArrayList<>(oldList);

このメソッドにより、元のオブジェクトと同じ要素を持つ別の ArrayList オブジェクトが生成されます。

以上がJava の ArrayList 割り当てはコピーまたは共有参照を作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。