美文网首页
LinkedList源码分析

LinkedList源码分析

作者: felixfeijs | 来源:发表于2021-04-02 19:07 被阅读0次

    LinkedList源码分析

    • Node为数据存储的基本单位
    • 内部声明了Node类型的first和last属性,默认值为null
    • Node的定义:体现LinkedList的双向链表(有前一个和后一个数据)
    
        private static class Node<E> {
            E item;  //内部类的使用
            Node<E> next; // 下一个
            Node<E> prev; // 前一个
            
            // 存放数据  前一个、中间数据、下一个
            Node(Node<E> prev, E element, Node<E> next) {
                this.item = element;
                this.next = next;
                this.prev = prev;
            }
        }
    
    add方法
        public boolean add(E e) {
            linkLast(e);
            return true;
        }
    
    • 当前数据进来,last赋值Node对象,并且创建一个以last为前一个参数、e为数据、null为下一个的新Node对象,如果l是null则证明,当前数据是第一条数据,如果不是null则表明是最后一条数据,每次执行完进行++
        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++;
        }
    

    相关文章

      网友评论

          本文标题:LinkedList源码分析

          本文链接:https://www.haomeiwen.com/subject/sppqkltx.html