[Java 基础]LinkedList
LinkedList 是线性表。是由一系列节点组成的序列,每个节点包含两个字段:数据(此处以整数值为例)以及指向下一个节点的指针。最后一个节点通过一个终止符与下一个节点相连,以表示链表的结束。
示意可以看 VCR:https://visualgo.net/en/list
创建 linkedList
LinkedList<E> list = new LinkedList<E>();
常用方法
方法 | 描述 |
---|---|
public boolean add(E e) | 向链表的尾部添加元素 |
public void add(int index, E element) | 向指定下标位置插入元素 |
public void addFirst(E e) | 向链表的头部添加元素 |
public boolean offerLast(E e) | 向链表的尾部添加元素 |
public E get(int index) | 返回指定位置的元素 |
public int size() | 返回链表元素个数 |
和其他容器对比
特性 | ArrayList | LinkedList | HashSet | HashMap |
---|---|---|---|---|
是否保持插入顺序 | 是 | 是 | 否 | 否 |
是否允许元素重复 | 是 | 是 | 否 | 不允许 key 重复 |
查找效率 | O(n)(遍历查找) | O(n)(遍历查找) | O(1)(哈希查找) | O(1)(哈希查找) |
适用场景 | 索引查找 | 频繁插入、删除 | 去重、快速查找 | 存储键值映射 |
更多关于 LinkedList 的信息可以查阅 Oracle 的 Java Doc 或查看源码:
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html