5

同じオブジェクトを 2 つの異なるコレクションに追加すると、各コレクションにオブジェクトのコピーが作成されますか?それとも、コレクションは同じオブジェクトへの参照を取得しますか?

私がやろうとしているのは、2 つの異なるコレクションを使用して同じオブジェクトのセットを管理することですが、異なる方法でオブジェクトにアクセスして順序付けできるようにすることです。

4

1 に答える 1

12

いいえ、オブジェクトをコレクションに追加することで、そのオブジェクトへの参照 (オブジェクトがヒープに格納されているアドレス) を渡すだけです。したがって、1 つのオブジェクトを異なるコレクションに複数回追加することは、名刺を配るようなものです。自分自身を複製しているわけではありませんが、複数の人が自分の場所を知っています ;)

ここにいくつかのコード:

LinkedList<MyObject> list1 = new LinkedList<MyObject>();
LinkedList<MyObject> list2 = new LinkedList<MyObject>();
MyObject obj = new MyObject();
list1.add(obj);
list2.add(obj); // This does not create a copy of the object, only the value of the address where to find the object in the heap (memory) is being copied
于 2012-11-12T23:51:55.577 に答える