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,也就是修改最后个,最坏。。。。。。
窗体底端