Каждому элементу двумерного массива array последовательно присваиваются элементы одномерного массива row, в котором все элементы последовательно присваиваются переменной cell. Не понятно, как это работает, во внутреннем for все в ряд записывается, а зачем тогда внешний for?
public List<Integer> toList(int[][] array) {
List<Integer> list = new ArrayList<>();
for (int[] row : array) {
for (int cell : row) {
list.add(cell);
}
}
return list;
}
Внешний for нужен для того чтобы пройти по всем массивам внутри array.
То есть на первой итерации внешнего цикла в list добавятся все элементы из первого массива, на втором из второго и т.д.