これは本当にばかげた質問だと思いますが、次のようになります。
Java のデフォルトの LinkedList 実装の clear メソッドがわざわざリストをたどってすべてのノードをアンフックするのはなぜですか? ヘッダーをフックから外して、残りのリストを接続したままにしないのはなぜですか?とにかく GC がそれを取得します。
メソッドは次のとおりです。
/**
* Removes all of the elements from this list.
*/
public void clear() {
Entry<E> e = header.next;
while (e != header) {
Entry<E> next = e.next;
e.next = e.previous = null;
e.element = null;
e = next;
}
header.next = header.previous = header;
size = 0;
modCount++;
}
なぜそれを歩くのですか?にスキップしてみませんheader.next = header.previous = header;
か?
私が理解できる最善のことは、それがGCに役立つことです...?このリンクhttp://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442は、それを示唆しています。
ティア...