LinkedList源码实现 add方法

2021-04-05  本文已影响0人  粽十三丶

LinkedList源码实现 add

1.首先看add方法

public boolean add(E e) {

//调用linkLast方法传入对象

        linkLast(e);

        return true;

    }

2.linkLast方法实现

/**

    * Links e as last element.

    */

    void linkLast(E e) {

        final Node<E> l = last;

//使用构造方法创建一个新的链表对象,last对象存储到该链表中的下一个元素对象,上一个元素对象传null值

        final Node<E> newNode = new Node<>(l, e, null);

//将创建的newNode对象赋值给本LinkedList对象的last元素中

        last = newNode;

//判断赋值之前的last对象,如果为空,first属性赋值为本次创建的newNode对象

        if (l == null)

            first = newNode;

        else

//否则原来的last对象中的下一个元素赋值为本次创建的newNode对象

            l.next = newNode;

//记录数据长度++

        size++;

        modCount++;

    }

new Node构造方法:

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;

        }

    }

上一篇 下一篇

猜你喜欢

热点阅读