Разница в производительности между получением один раз и локальной переменной почти всегда пренебрежимо мала. Но ... если вы настаиваете на делать это хардкорный способом, это быстрый путь:
ArrayList<Object> array_list = ...
// cache list.size() in variable!
for (int i=0, e=array_list.size(); i < e; ++i) {
// get object only once into local variable
Object object = array_list.get(i);
// do things with object
}
Это кэширует списки размера в локальные переменные е, чтобы избежать вызова array_list.size() в каждом итерации цикла, а также каждый элемент цикла, чтобы избежать вызовов get (index). Имейте в виду, что все, что вы на самом деле do с объектами в цикле, скорее всего, будет на порядок дороже, чем сам цикл.
Поэтому предпочитает читаемость кода и просто не использовать расширенный синтаксис петли:
ArrayList<Object> array_list = ...
for (Object object : array_list) {
// do things with object
}
Нет суеты, короткой и четкую. В большинстве случаев это намного больше, чем несколько сохраненных тактовых циклов.
Не могли бы вы придумать лучшее название? –
Что вы измерили? – RobAu
JIT может оптимизировать вторую версию, чтобы она была эквивалентна первой. Качество кода мудрено, первое лучше, потому что вы можете дать вашему объекту описательное имя. – Cubic