相关疑难解决方法(0)

Java的LinkedList中的clear()impl

我担心这是一个非常愚蠢的问题,但这里有:

为什么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++;
}
Run Code Online (Sandbox Code Playgroud)

为什么走吧?为什么不跳过header.next = header.previous = header;

我能想到的最好的是它有助于GC ...?这个链接http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442有点暗示.

TIA ...

java linked-list clear

11
推荐指数
1
解决办法
7696
查看次数

标签 统计

clear ×1

java ×1

linked-list ×1