いくつかの異なる 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);
この時点で、両方のリストに同じオブジェクトを指す項目があります。値は「2、3」です。オブジェクトの値を変更した場合。次に、両方のリストが変更されます。
a.set(5,5);
これで、両方のリストに値「5, 5」のアイテムが含まれます。しかし、値をnullに設定しようとすると。
a = null;
現在はa
null に設定されていますが、オブジェクトの両方のリストはまだ "5, 5" であり、私が望んでいたように null ではありません。クラスにメソッドを追加して、Point
それ自体をnullに設定しようとさえしました。しかし、私もそれを機能させることができませんでした。ポインターだけを変更して、すべてのリストのオブジェクトを削除するにはどうすればよいですか?