for循環和for-每個循環之間有性能差異嗎?如果有的話,下面兩個循環之間的性能差異是什么?for (Object o: objectArrayList) {
o.DoSomething();}和for (int i=0; i<objectArrayList.size(); i++) {
objectArrayList.get(i).DoSomething();}
3 回答
慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
版本1.5中引入的for-each循環通過完全隱藏迭代器或索引變量來消除雜亂和出錯的機會。由此產生的成語同樣適用于集合和數組: // The preferred idiom for iterating over collections and arraysfor (Element e : elements) { doSomething(e);}
當您看到冒號(:)時,將其讀為“in”。因此,上面的循環為“元素中的每個元素e”。注意,即使對于數組,使用for-each循環也沒有性能損失。實際上,在某些情況下,它可能比普通的for循環具有輕微的性能優勢,因為它只計算一次數組索引的限制。雖然您可以手工完成(項目45),但程序員并不總是這樣做。
添加回答
舉報
0/150
提交
取消
