这是一个非常简短而直接的问题,但我无法找到答案。
考虑以下情况。

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中。

该列表未复制。周围只会有一个清单。

09-29 22:27