如果我将同一个对象添加到两个不同的集合中,是否会在每个集合中复制该对象,或者集合是否会引用同一个对象?
我要做的是使用两个不同的集合来管理同一组对象,但允许我使用不同的方法来访问和排序对象。
答案 0 :(得分:12)
不,通过向集合添加对象,您只是将引用传递给该对象(对象存储在堆上的地址)。因此,将多个对象多次添加到不同的集合中就像分发名片一样,您不会自己复制,但多人知道在哪里找到您;)
这里有一些代码:
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