`
NicholasBugs
  • 浏览: 50763 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

LinkedList的remove操作的性能

阅读更多
查看了下linkedlist的源码,其remove(Object o)的源码如下:
    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)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics