这是一个非常简短而直接的问题,但我无法找到答案。
考虑以下情况。
ArrayList<A> listOne, listTwo;
listOne = new ArrayList<A>();
listTwo = listOne;
我的问题是
listTwo
会发生什么。从C“ nativespeaker”的角度来看,仅复制指针并且不执行其他任何操作,或者仅在新的内存区域中复制列表。我使用此代码的目的如下:ArrayList<A> listOne, listTwo, auxList;
//listOne and listTwo have been initialized and filled somewhere else.
public void method( int opType ){
if( opType == 0)
auxList = listOne; //Set pointer, not copy list;
else
auxList = listTwo; //Set pointer, not copy list;
....
}
最佳答案
[...]仅复制指针,不执行其他任何操作,或仅在新的存储区中复制列表。listOne
中包含的引用被复制到listTwo
中。
该列表未复制。周围只会有一个清单。