私はこのコードを持っています。しかし、私は結果を説明するのか分からない:同じオブジェクトへの2つのarrayListの参照
ArrayList<String> first = new ArrayList<String>();
first.add("1");
first.add("2");
first.add("3");
ArrayList<String> second = new ArrayList<String>();
second = first;
System.out.println("before modified:"+second.size());
second.clear();
System.out.println("after modified:");
System.out.println(" First:"+first.size());
System.out.println(" Second:"+second.size());
結果は以下のようになります。3/0/0
私にはわからない問題がある:あなたがそうfirst = second;
を割り当てるときに、両方の最初の2番目の配列は同じオブジェクト(1,2,3)を指します。後でclear
の2番目の配列のすべての要素は、2番目の配列とこれらのオブジェクトの間のすべての参照が緩んでいます(ここでは問題ありません)。
私には分かりませんが、これらのオブジェクト(1,2,3)はまだ最初の配列を参照しています。最初の配列のサイズが0である理由
私に説明してください。 second = first
を割り当てることにより
このリンクを参照してください。http://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java – aProgrammer