Закомментированный код прекрасно срабатывает, а модный For-each вылетает с ошибкой IndexOutOfBoundsException, хотя по сути процесс тот же? Подскажите почему так происходит
package com.javarush.task.task09.task0921;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Метод в try..catch
*/
public class Solution {
public static void main(String[] args) {
readData();
}
public static void readData() {
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> array = new ArrayList<>();
while(true) {
try {
array.add(Integer.parseInt(read.readLine()));
}
catch (Exception e) {
//for (int i=0;i<array.size();i++) System.out.println(array.get(i)); Отлично работает
for (int i : array) System.out.println(array.get(i)); //выбивает IndexOutOfBoundsException
break;
}
}
}
}