java - 为什么我会使用 list.clear()

标签 java collections garbage-collection

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/

相关文章:

java - Apache Spark : How can i access nested array of integers within Tuple2 object in Java?

javascript - CollectionFS Meteor、所见即所得、Summernote、图片上传

.net - .NET 中垃圾收集和后台线程如何交互?

java - 使用迭代时超出 Clojure GC 开销限制

java - 我的递归条件是否正确计算二叉树高度?

java - 如何在 Java 中使用 HttpClient 检索二进制文件?

java - Hibernate复合键映射问题

java - HashSet 输出不匹配 [JAVA]

Java从对象/值的无序集合/列表中生成唯一的id

java - JVM 智能内存池调整大小