不必关心容量问题
是一个双向链表
- LinkedList包含两个重要的成员:header 和 size。
- header 指向头节点
- size 记录节点个数
- LinkedList包含两个重要的成员:header 和 size。
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;
}
}
- 可以当做 队列、栈、双端队列进行操作。
顺序访问非常高效,随机访问效率比较低。
- 随机访问的实现原理
- 实际原理非常简单,它就是通过一个计数索引值来实现的。例如,当我们调用get(int location)时,首先会比较“location”和“双向链表长度的1/2”;若前者大,则从链表头开始往后查找,直到location位置;否则,从链表末尾开始先前查找,直到location位置。
遍历LinkedList
- 虽然LinkedList对随机访问的效率不高,但对于非随机访问的操作效率还是很高效的。
- 虽然LinkedList对随机访问的效率不高,但对于非随机访问的操作效率还是很高效的。