看一下LinkedList的remove()方法
public boolean remove(Object o) {
if (o == null) {
for (Node<E> x = first; x != null; x = x.next) {
if (x.item == null) {
unlink(x);
return true;
}
}
} else {
for (Node<E> x = first; x != null; x = x.next) {
if (o.equals(x.item)) {
unlink(x);
return true;
}
}
}
return false;
}
从中可以看出linkedlist是支持放入null值的
删除一个对象会从头开始依次向后比较
o.equals(x.item) 调用了equals方法 所以我们自己创建的类要重写toString方法
然后执行进入unlike(x)方法:
E unlink(Node<E> x) {
// assert x != null;
final E element = x.item;
final Node<E> nex