clear方法的源码如下,在代码里他循环了所有item,将其previous和next全部设置成了null,目的何在?
[code="java"]
public void clear() {
Entry e = header.next;
while (e != header) {
Entry next = e.next;
e.next = e.previous = null;
e.element = null;
e = next;
}
header.next = header.previous = header;
size = 0;
modCount++;
}
[/code]
如果改成如下实现会有什么影响呢?其他的item都已经访问不到了,应该也不会影响GC啊。
public void clear() {
header.next = header.previous = header;
size = 0;
modCount++;
}
[/code]