#LinkedList源码阅读
LinkedList结构图
主要介绍几个重要的方法get remove set clone
@SuppressWarnings("unchecked")
private LinkedList<E> superClone() {
try {
//调用Object对象里面的clone方法,默认为浅拷贝
return (LinkedList<E>) super.clone();
} catch (CloneNotSupportedException e) {
throw new InternalError(e);
}
}
public Object clone() {
调用superClone方法,superClone方法调用object的clone方法。
LinkedList<E> clone = superClone();
//把浅拷贝的属性初始化
// Put clone into "virgin" state
clone.first = clone.last = null;
clone.size = 0;
clone.modCount = 0;
// 重新把元素拷贝进clone里,注意由于Node类里面的属性并不是完全深拷贝,所以该方法并不是完全深拷贝
for (Node<E> x = first; x != null; x = x.next)
clone.add(x.item);
return clone;
}
此处返回该链表的浅拷贝,