私はいくつかの異なるArrayListに追加したオブジェクトを持っています。私はすべてのリストを変更しないようにしたいので、すべてのリストが変更されるようにポインタを変更しようとしています。しかし、私は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」とNOT NULLです。私はさらに、Point
クラスにメソッドを追加してnullに設定しようとしました。しかし、私はそれを働かせることができませんでした。ポインタだけを変更して、すべてのリストのオブジェクトを削除するにはどうすればよいですか?
技術的には、Javaでは「ポインタ」ではなく「参照」です。しかしどちらの方法でも、ポインタ/リファレンスを変更してもオブジェクトは変わらないので、電話番号を変更するだけで、髪の色が変わることになります。 –
私は問題の一部は、Javaでオブジェクトを削除するということはないということです。削除するまで待つだけです。 – Whymarrh