LinkedList 类
1、由双向链表实现数据存储
2、元素有序、可重复、允许多个 null 元素
3、线程不安全,没有实现同步、互斥
4、一般情况下 80% - 90% 为查询,所以大部分情况下选择 ArrayList
| 底层结构 | 增删效率 | 改查效率 | |
| ArrayList | 可变数组 | 较低 | 较高 |
| LinkedList | 双向链表 | 较高 | 较低 |
底层
1、维护一个双向链表,first、last 分别指向首节点、尾节点
transient Node<E> first;
transient Node<E> last;
2、每个节点(Node 对象)维护 prev、next、item
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)prev 指向前一个节点,next 指向后一个节点,以此实现双向链表
(2)item 节点存储对象

浙公网安备 33010602011771号