В задаче уже заполнен один метод, синтаксис которого мне не совсем понятен. Я бы написала метод так:
public static void printArray(int[] array) {
       for (int i = 0; i < array.length; i++) {
           System.out.print(array[i]);
А в задаче написан такой вариант.
public static void printArray(int[] array) {
        for (int i : array) {
            System.out.print(i + ", ");
Я не понимаю, как из
 for (int i = 0; i < array.length; i++)
 получается
 for (int i : array)

А из
System.out.print(array[i]);
 получается
System.out.print(i + ", ");

Помогите понять. И правильно ли я понимаю, что вариант, который дан в задаче более предпочтителен при программировании?