关于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,也就是修改最后个,最坏。。。。。。
窗体底端
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,也就是修改最后个,最坏。。。。。。
窗体底端
相关文章推荐
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- java的list几种实现方式的效率(ArrayList、LinkedList、Vector、Stack),以及 java时间戳的三种获取方式比较
- 关于ArrayList与LinkedList添加数据的效率问题
- 关于LinkedList和ArrayList的执行效率的问题的区别(测试用例)
- List三种遍历方式及效率问题
- 关于LinkedList和LinkedListNode
- 关于ArrayList和LinkedList的区别
- ArrrayList 和 LinkedList 查询效率区别举例说明
- 关于ArrayList和LinkedList笔试题
- java中关于List中ArrayList和LinkedList的一些区别
- Java数据结构之LinkedList、ArrayList的效率分析
- 关于LinkedList经验分享(源码分析)
- Javascript中for循环的三种写法的效率对比
- LinkedList,ArrayList末尾插入谁效率高?
- Java中LinkedList的fori和foreach效率比较
- 关于ArrayList和LinkedList的插入,遍历,删除时间比照
- Javascript中for循环的三种写法的效率对比【转载】
- Java系列: 关于LinkedList的 ListIterator的add和remove
- java中关于ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- HashMap存取效率高原因、ArrayList和LinkedList区别、JAVA实现链表的基本功能