(對於那些誰熟悉的JVM編譯和優化技巧的一個問題... :-)Java循環效率(「爲」與「的foreach」)
是否有任何的「對」與「 foreach「模式明顯優於其他模式?
考慮下面兩個例子:
public void forLoop(String[] text)
{
if (text != null)
{
for (int i=0; i<text.length; i++)
{
// Do something with text[i]
}
}
}
public void foreachLoop(String[] text)
{
if (text != null)
{
for (String s : text)
{
// Do something with s, exactly as with text[i]
}
}
}
是forLoop
更快或比foreachLoop
慢?
假設在這兩種情況下,text
陣列都不需要進行任何智能檢查,是否有明顯的贏家或仍然太接近打電話?
編輯:正如在一些答案中指出的,數組的性能應該是相同的,而「foreach」模式對於像列表這樣的抽象數據類型可能稍微好一些。另見this answer,其中討論了這個問題。
回答256859確實覆蓋了我的問題,但不知怎的,它並沒有在我做的搜索中彈出。感謝大家! – PNS 2012-02-10 11:23:29