clear () impl no LinkedList do Java
Receio que seja uma pergunta realmente estúpida, mas aqui vai:
Por que o método clear na implementação padrão LinkedList do Java se preocupa em percorrer a lista e soltar todos os nós? Por que não apenas soltar o cabeçalho e deixar o restante da lista conectado - o GC o conseguirá mesmo assim, não?
Aqui está o método:
/**
* 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++;
}
Por que andar? Por que não pular paraheader.next = header.previous = header;
?
Melhor que posso imaginar é que ajuda o GC ...? Esse linkhttp: //java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#99744 meio que sugere isso.
TIA ...