java中的Arraylist有一个方法调用clear()。为什么我会选择使用 clear 而不是 resigning reference ?
list.clear()
对比
list = new ArrayList() ?
看起来 list.clear()
会更慢,在第二种情况下,GC 会处理清理并让我们的生活更轻松?
最佳答案
当某些其他 代码段引用同一列表时,您可以使用list.clear()
。
例如,如果您遇到这样的情况,重新分配是行不通的:
class Watcher {
private final List<String> list;
public Watcher(List<String> l) { list = l; }
public void doSomething() {
// Use list
}
}
void main() {
List<String> lst = new ArrayList<String>();
Watcher w = new Watcher(lst);
...
// At this point lst.clear() is different from lst = new List<String>()
}
关于java - 为什么我会使用 list.clear(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24518353/