Второй раз сталкиваюсь с проблемой и не могу понять почему выдаёт ошибку. Я эту задачу решил используя обычный for. Но почему при вводе числа более размера массива с использованием улучшенного for выдаёт java.lang.ArrayIndexOutOfBoundsException? Если можно, то по подробнее, пожалуйста.
public class Solution {
public static void main(String[] args) throws Exception {
int[] array = initializeArray();
int max = max(array);
System.out.println(max);
}
public static int[] initializeArray() throws IOException {
int[] list = new int[20];
for (int i = 0; i < 20; i++) {
list[i] = Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
}
return list;
}
public static int max(int[] array) {
int maxValue = array[0];
for (int i : array) {
if (maxValue < array[i]) {
maxValue = array[i];
}
}
return maxValue;
}
}