我有这段代码。但我不知道该如何解释结果:将两个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;
所以,无论是第一第二个数组将指向相同的对象(1,2和3)。在第二个数组上的所有元素之后,第二个数组和这些对象之间的所有引用都会松动(这里没有问题)。
我不知道的事情是:但这些对象(1,2和3)仍持有参照第一阵列。为什么第一个数组的大小为0。
请给我解释一下。
谢谢:)
请参阅此链接http://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java – aProgrammer 2012-04-12 07:44:50