Java集合之LinkedList

一、简介

LinkedList从名字就可以看出是用链表为数据结构实现的List,内部使用了一个双向链表,首先看一下LinkedList的Filed:

transient int size = 0; //List的长度
transient Node<E> first; //指向头节点的指针
transient Node<E> last; //指向尾节点的指针

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

二、初始化

初始化很简单,啥也没做:

三、增加

因为是双向链表,所以可以头部和尾部都可以增加节点。

3.1 尾部增加add(E e)

3.2 头部增加addFirst(E e)

四、删除

删除分为删除头节点,删除尾结点和删除中间节点,实现类似,这里只说一下删除中间节点。、

五、查找

六、修改

七、总结

因为使用了链表,增加和删除比ArrayList快,查找和修改比ArrayList慢。

Last updated

Was this helpful?