美文网首页
3:LinkedList源码阅读

3:LinkedList源码阅读

作者: Han琪 | 来源:发表于2018-02-27 15:27 被阅读0次

    首先看看LinkedList与Collection的关系:

    image

    LinkedList的继承关系如下:
    首先看看LinkedList与Collection的关系:

    java.lang.Object
      ↳     java.util.AbstractCollection<E>
            ↳     java.util.AbstractList<E>
                  ↳     java.util.AbstractSequentialList<E>
                        ↳     java.util.LinkedList<E>
    
    public class LinkedList<E>
       extends AbstractSequentialList<E>
       implements List<E>, Deque<E>, Cloneable, java.io.Serializable {}
    

    inkedList是一个继承与AbatractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
    LinkedList实现了List接口,能对它进行队列操作。
    LinkedList实现了Deque接口,即能将LinkedList当作双端队列使用。
    LinkedList实现了java.io.Serializable接口,这意味着LinkedList支持序列化,能通过序列化去传输。
    LinkedList是非同步的。

    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;
            }
        }
    

    总结一下:

    1). LinkedList是通过双向链表去实现的。
    2). 从LinkedList的实现方式中可以看出,它不存在容量不足的问题,因为是链表。
    3). LinkedList实现java.io.Serializable的方式。当写入到输出流时,先写入“容量”,再依次写出“每一个元素”;当读出输入流时,先读取“容量”,再依次读取“每一个元素”。
    4). LinkdedList的克隆函数,即是将全部元素克隆到一个新的LinkedList中。
    5). 由于LinkedList实现了Deque,而Deque接口定义了在双端队列两端访问元素的方法。提供插入、移除和检查元素的方法。
    6). LinkedList可以作为FIFO(先进先出)的队列,作为FIFO的队列时,下标的方法等价:

        队列方法       等效方法  
        add(e)        addLast(e)  
        offer(e)      offerLast(e)  
        remove()      removeFirst()  
        poll()        pollFirst()  
        element()     getFirst()  
        peek()        peekFirst()  
    

    7).LinkedList可以作为LIFO(后进先出)的栈,作为LIFO的栈时,下表的方法等价:

        栈方法        等效方法  
        push(e)      addFirst(e)  
        pop()        removeFirst()  
        peek()       peekFirst()  
    

    相关文章

      网友评论

          本文标题:3:LinkedList源码阅读

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