一尘不染

Javalist.clear()vs list = new ArrayList <Integer>();

java

清除ArrayList的两个选项中哪个更好,更快,为什么?

list.clear() 

要么

list = new ArrayList<Integer>();

碰巧,我不得不随机地从ArrayList中清除所有条目,而我无法知道将来会有多少个新条目,可能是0或1000。哪种方法更快,更好,为什么?


阅读 330

收藏
2020-03-24

共1个答案

一尘不染

没有基准就很难知道,但是如果ArrayList中有很多项目,并且平均大小较小,则创建新的ArrayList可能会更快。

http://www.docjar.com/html/api/java/util/ArrayList.java.html

public void clear() {
    modCount++;

    // Let gc do its work
    for (int i = 0; i < size; i++)
        elementData[i] = null;

    size = 0;
}
2020-03-24