用新列表java替换旧列表

Bel*_*ish 0 java arraylist

所以基本上现在我有一个列表,为了从列表中删除无效项目我正在循环它并将所有有效项目保存到新列表.循环完成后,我想将旧列表设置为等于新列表.我只是想知道,如果我去

list = newList;
Run Code Online (Sandbox Code Playgroud)

将列出现在是一个指向newList的指针?或者我现在有2个完全独立的清单.

谢谢

Ted*_*opp 5

您将分配对list引用的同一列表的newList引用.分配后,将有只有一个参与列表(listnewList将引用同一个对象).此外,除非您对list用于引用的对象有另一个引用,否则用于引用的对象list将被垃圾回收.

跟踪SamV的评论,如果列表支持删除,则此操作不需要两个列表:

List<Thing> list = . . .;
for (Iterator<Thing> iter = list.iterator(); iter.hasNext(); ) {
    Thing t = iter.next();
    if (!isValid(t)) {
        iter.remove(); // removal through the iterator itself is ok
    }
}
Run Code Online (Sandbox Code Playgroud)