Новая конструкция for
-each для перебора массивов и коллекций - самая большая для меня.
В наши дни, когда я вижу циклический шаблон for
, который перебирает массив один за другим с помощью индексной переменной, мне хочется кричать:
// AGGHHH!!!
int[] array = new int[] {0, 1, 2, 3, 4};
for (int i = 0; i < array.length; i++)
{
// Do something...
}
Замена вышеупомянутого конструктом for
, представленным в Java 5 :
// Nice and clean.
int[] array = new int[] {0, 1, 2, 3, 4};
for (int n : array)
{
// Do something...
}
Чисто, кратко и, что лучше всего, он дает значение коду, а не показывает , как что-то сделать.
Очевидно, что код имеет смысл перебирать коллекцию, а не старый цикл for
, в котором говорится, как перебирать массив.
Кроме того, поскольку каждый элемент обрабатывается независимо от других элементов, он может позволить в будущем оптимизировать параллельную обработку без необходимости вносить изменения в код. (Только предположения, конечно.)