http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/ArrayList.java#473java.util.Arraylist#clearがOpenJDKのように実装されたのはなぜですか?
public void clear() {
modCount++;
// Let gc do its work
for (int i = 0; i < size; i++)
elementData[i] = null;
size = 0;
}
私の質問です、なぜ彼らは、彼らは単に補助配列を再初期化していることができるときガベージコレクションの対象の各要素を作るために補助配列{O(N)}を通じてサイクルを行う必要がありました、配列全体への参照を{O(1)}全体として破棄し、ガベージコレクションの対象にするのか? clear()
のO(n)のパフォーマンスは、私にはあまりいいとは思われません。
[list.clear()対list = new ArrayList();]の可能な複製(http://stackoverflow.com/questions/6961356/list-clear-vs-list-new-arraylistinteger) –
Tala
私はしないでくださいこれは重複していると思う。 – nawfal