双向链表
-
双向类表的基本单元还是节点Node,每个节点都有三个属性:1、存储的数据 2、下一个节点的地址3、上一个节点的地址
-
Linked集合尅有初始化容量,最初这个链表没有任何元素,first和last都是null
-
不管是LinkedList还是ArrayList,写代码时不许哟啊关心具体是哪个集合,因为我们是面向接口编程,调用的都是接口中的方法
-
我们创建LinkedList对象后对其进行add操作本质是调用了底层的linkLast方法
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}
- 以下是进行add方法时的内存变化
- 调用了add方法后:
- 加入第一个元素“a”
- 加入第二个元素“b”
- 总结