您的位置:首页 > 其它

关于LinkedList的三种写法的效率

2011-05-29 11:22 459 查看
1.LinkedList<String>
xxList = new LinkedList<String>();

// ...

Iterator<String>
xxIterator = xxList.iterator();

while(xxIterator.hasNext()){

... = xxIterator.next();

//....

}

2.for(Object
obj : List)

3.LinkedList<String>
xxList = new LinkedList<String>();

// ...

for(int i =
0, i < xxList.size(), i++){

// ...

}

1和2实际是一样的,编辑器会把2编辑成1

为什么3不好,因为是linkedlist ;从执行效率上来差别大 ,需要线性时间啊。

O(size)这么多的时间。

但是如果是linkedlist,用这样循环。就不能保证。

是的,那个数组的ArrayList可以保证,LinkedList不行,它每次get(index)时,都会从表头开始。

ArrayList get一个元素,是O。

而LinkedList
get一个,需要O(n/2)

这样再一循环,更不得了,如果数量级越大,差别越大。

经常要在表中间修改元素时,linkedlist就比arraylist快了。

他修改的时间是O

arraylist的话,和位置有关,最优是O,也就是修改最后个,最坏。。。。。。

窗体底端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: