1. ホーム
  2. java

[解決済み] list.clear() vs list = new ArrayList<Integer>(); [duplicate].

2022-06-20 03:58:11

質問

ArrayListをクリアするには、2つのオプションのうちどちらがより良く、より速いですか?

list.clear() 

または

list = new ArrayList<Integer>();

私は、任意の時間に、ArrayListからすべてのエントリをクリアする必要があり、将来どれだけの新しいエントリがあるかを知る方法がありません。どの方法がより速く、より良いか、そしてその理由は何ですか?

どのように解決するのですか?

ベンチマークがないとわかりませんが、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;
}