Я читал, что улучшенный цикл for более эффективен, чем обычный для цикла:
http://developer.android.com/guide/practices/performance.html#foreach
Когда я искал разницу между их эффективностью, все, что я нашел, это: В случае нормального цикла нам нужен дополнительный шаг, чтобы узнать длину массива или размер и т.д.
for(Integer i : list){
....
}
int n = list.size();
for(int i=0; i < n; ++i){
....
}
Но является ли это единственной причиной, улучшенная для цикла лучше, чем нормальная для цикла? В этом случае лучше использовать нормальную для цикла из-за небольшой сложности в понимании расширенного цикла.
Проверьте это на интересную проблему: http://www.coderanch.com/t/258147/java-programmer-SCJP/certification/Enhanced-Loop-Vs-Loop
Может ли кто-нибудь объяснить внутреннюю реализацию этих двух типов циклов или объяснить другие причины использования расширенного цикла?