Java の ArrayList の clone() メソッドについて質問があります。
ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = original;
copy.remove(0);
オリジナル -> [HeavyOjbect1, HeavyOjbect2]
コピー -> [HeavyOjbect1, HeavyOjbect2]
clone() メソッドを使用するようになりました
ArrayList<HeavyOjbect> original = new ArrayList<HeavyOjbect>();
original.add(new HeavyOjbect(0));
original.add(new HeavyOjbect(1));
original.add(new HeavyOjbect(2));
ArrayList<Integer> copy = (ArrayList<HeavyOjbect>) original.clone();
copy.remove(0);
オリジナル -> [HeavyOjbect0、HeavyOjbect1、HeavyOjbect2]
コピー -> [HeavyOjbect1, HeavyOjbect2]
右 ?
しかし、クローンが何をするのかわかりません。すべての HeavyObject を複製しますか? ArrayList の 1000 倍のクローンを作成した場合、メモリは爆発しますか?
編集:だからクローンで
new HeavyOjbect(0) -> @10
new HeavyOjbect(1) -> @20
new HeavyOjbect(1) -> @30
original(ref1 to @10, ref1 to @20, ref1 to @30)
copy(ref2 to @10, ref2 to @20, ref2 to @30)
右 ?
ありがとう