Java的LinkedList类(双向链表)

双向链表

  • 双向类表的基本单元还是节点Node,每个节点都有三个属性:1、存储的数据 2、下一个节点的地址3、上一个节点的地址

  • Linked集合尅有初始化容量,最初这个链表没有任何元素,first和last都是null

  • 不管是LinkedList还是ArrayList,写代码时不许哟啊关心具体是哪个集合,因为我们是面向接口编程,调用的都是接口中的方法

  • 我们创建LinkedList对象后对其进行add操作本质是调用了底层的linkLast方法

    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++;
    }
  • 以下是进行add方法时的内存变化
  1. 调用了add方法后:
    Java的LinkedList类(双向链表)_第1张图片
  2. 加入第一个元素“a”
    Java的LinkedList类(双向链表)_第2张图片 Java的LinkedList类(双向链表)_第3张图片
  3. 加入第二个元素“b”
    Java的LinkedList类(双向链表)_第4张图片
  4. 总结
    Java的LinkedList类(双向链表)_第5张图片

你可能感兴趣的:(JavaSE,链表,java,数据结构)