千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

LinkedList的add与remov底层笔记::
LinkedList:增源码(add)
public boolean add(E e) {
linkLast(e);//创建一个集合
return true;
}
void linkLast(E e) {
final Node<E> l = last; //l = 最后一个元素
final Node<E> newNode = new Node<>(l, e, null);//创建一个元素node
last = newNode;//将last 指向这个元素
if (l == null)//判断有没有last
first = newNode;//没有最后一个元素就把first指向刚创建的元素
else
l.next = newNode;//有就把上一个的next指向new
size++;
modCount++;
}
LinkedList:删源码(remov)
public E remove() {
return removeFirst(); //调用removeFirst
}
public E removeFirst() {
final Node<E> f = first;
if (f == null)//判断要删除的这个集合是不是空的,空的就报错
throw new NoSuchElementException();
return unlinkFirst(f);//调用unlinkFirst
}
private E unlinkFirst(Node<E> f) {
// assert f == first && f != null;
final E element = f.item; //把元素获取出来 返回去
final Node<E> next = f.next;//next指向下一个元素
f.item = null;//把元素置空
f.next = null; // help GC //帮助垃圾回收器
first = next;//把first 指向下一个元素
if (next == null) //判断下一个是否为空
last = null;//空的就last也是空
else
next.prev = null;// 不是空的就把下一个元素的 prev值为空 (首个元素没有上一个)
size--;
modCount++;
return element;
}