美文网首页
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