JDK 1.8 LinkedList 关键代码分析 重要属性和add


    /**
     * 有序(输入有序),不唯一
     * 底层实现是双向链表
     * 易修改,不易查询
     */
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
    //集合的大小
    transient int size = 0;

    //头节点
    transient Node<E> first;

     //尾节点
    transient Node<E> last;
     /**
     * 节点内部类
     **/
      private static class Node<E> {
        E item; //元素的内容
        Node<E> next;//下一个节点
        Node<E> prev;//上一个节点
        }
    
/**
* 添加一个元素
* 在尾添加
**/    
    public boolean add(E e) {
        linkLast(e);
        return true;
    }
    /**
    *在尾添加一个元素
    **/
    void linkLast(E e) {
        final Node<E> l = last;
        final Node<E> newNode = new Node<>(l, e, null);
        last = newNode;
        if (l == null)
            first = newNode;
        else
            l.next = newNode;
        size++;
        modCount++;
    }
}
posted @   李悠然  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示