java.util.LinkedListJava
文章发布较早,内容可能过时,阅读注意甄别。
# 定义
继承AbstractSequentialList
类,实现List
和Deque
等接口
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
1
2
3
4
2
3
4
# 成员变量
transient int size = 0;
默认size为0,- first节点、last节点,操作时也是操作这两个节点
/**
* Pointer to first node.
* Invariant: (first == null && last == null) ||
* (first.prev == null && first.item != null)
*/
transient Node<E> first;
/**
* Pointer to last node.
* Invariant: (first == null && last == null) ||
* (last.next == null && last.item != null)
*/
transient Node<E> last;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 成员函数
public Object[] toArray()
集合转数组,public <T> T[] toArray(T[] a)
泛型方法。public E removeFirst()
和public E removeLast()
移除元素- 对Node的增删改查操作
# 内部类
- 操作的是Node节点,定义为:
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev;
1
2
3
4
5
2
3
4
5
- 子链表,在父类AbstractList中,定义为:
class SubList<E> extends AbstractList<E> {
private final AbstractList<E> l;
private final int offset;
private int size;
1
2
3
4
5
2
3
4
5