Java集合(一):LinkedList

LinkedList底层数据结构是双向链表

LinkedList概述

1、LinkedList是双向链表实现的List
2、LinkedList是非线程安全的
3、LinkedList元素允许为null,允许重复元素
4、LinkedList是基于链表实现的,因此插入删除效率高,查找效率低(虽然有一个加速动作,类似于二分法)
5、LinkedList是基于链表实现的,因此不存在容量不足的问题,所以没有扩容的方法
6、LinkedList还实现了栈和队列的操作方法,因此也可以作为栈、队列和双端队列来使用

内部参数

public class LinkedList<E> extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
    //大小
    transient int size = 0;
	//头节点
    transient Node<E> first;
	//尾节点
    transient Node<E> last;
    //内部类
    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、空构造
    public LinkedList() {
    }

	//2、带参构造,将传入的集合放在LinkedList里
    public LinkedList(Collection<? extends E> c) {
        this();
        addAll(c);
    }
posted @ 2021-09-16 09:49  微醺的小布  阅读(59)  评论(0编辑  收藏  举报