我知道,通過一個LinkedList使用迭代的差異循環訪問鏈表
for(int i = 0; i < list.size(); i++){
Item item = list.get(i);
}
來從列表達開始的單個對象有壞性能。獲得的每次調用(我)迭代一世。
正確的方法是使用迭代器。到現在爲止還挺好。
可是你知道這種風格:
for(Item item : list){
// item is already here
}
這是否有像使用迭代器相同的性能?這是如何在內部工作的?
您可以實現一個LinkedList w這個使用老式循環和list.get(i)沒有不好的表現。簡單地緩存最後訪問的節點,希望下一個呼叫是列表中直接跟隨的節點。這會導致與任何迭代器使用類似的性能。 – MrSmith42 2013-02-23 19:23:09
可能重複[每個循環的Java如何工作?](http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) – 2013-02-23 19:34:35