Java LinkedList.clear() 清除数据源码分析

清除数据clear()源码如下:

public void clear() {
    Entry<E> e = header.next;
    // e可以理解为一个移动的“指针”,因为是循环链表,所以回到header的时候说明已经没有节点了
    while (e != header) {
       // 保留e的下一个节点的引用
        Entry<E> next = e.next;
        // 解除节点e对前后节点的引用
        e.next = e.previous = null;
        // 将节点e的内容置空
        e.element = null;
        // 将e移动到下一个节点
        e = next;
     }
    // 将header构造成一个循环链表,同构造方法构造一个空的LinkedList
    header.next = header.previous = header;
    // 修改size
    size = 0;
    modCount++;
}  

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。