如何从指针中删除对象?

VIB*_*azo 3 java

我有一个对象,我添加到几个不同的ArrayLists.我想避免更改每个列表,所以我正在尝试更改指针,以便所有列表都更改.但是如果我想将对象设置为null,我就无法工作.例如:

ArrayList<Point> list1 = new ArrayList<Point>();
ArrayList<Point> list2 = new ArrayList<Point>();
Point a = new Point(2, 3);
list1.add(a); list2.add(a);
Run Code Online (Sandbox Code Playgroud)

此时,两个列表都有一个指向同一对象的项目.值为"2,3".如果我改变了对象的值.然后两个列表更改:

a.set(5,5);
Run Code Online (Sandbox Code Playgroud)

现在两个列表都有一个值为"5,5"的项.但是,如果我尝试将值设置为null.

a = null;
Run Code Online (Sandbox Code Playgroud)

现在将a其设置为null,但是对象两个列表仍然是"5,5"而不是我想要的null.我甚至尝试在Point类中添加一个方法,将其自身设置为null.但是,我也无法做到这一点.如何通过仅更改指针来删除所有列表上的对象?

Hov*_*els 5

您可以更改引用变量持有的对象的状态,这将反映在引用同一对象的所有变量中,但如果更改引用变量的赋值,则仅影响该变量.提到的对象没有改变 - 正如预期的那样.