查看了下linkedlist的源码,其remove(Object o)的源码如下:
在remove时,传入的o被作为一个值与各个entry进行比较,比较到合适的对象再去删除
由于有个查找的过程,因此,其时间复杂度为O(n) + O(1) = O(n)
public boolean remove(Object o) {
if (o==null) {
for (Entry<E> e = header.next; e != header; e = e.next) {
if (e.element==null) {
remove(e);
return true;
}
}
} else {
for (Entry<E> e = header.next; e != header; e = e.next) {
if (o.equals(e.element)) {
remove(e);
return true;
}
}
}
return false;
}
在remove时,传入的o被作为一个值与各个entry进行比较,比较到合适的对象再去删除
由于有个查找的过程,因此,其时间复杂度为O(n) + O(1) = O(n)