import java.util.*;

public class ArrayListMagnet {


    public static void main (String[] args){
        ArrayList<String> a = new ArrayList<String>(); //создаётся только для объектов String
        a.add(0, "ноль");  //помещаем в ArrayList слова один, два, три под разными индексами
        a.add(1, "один");  //помещаем в ArrayList слова один, два, три под разными индексами
        a.add(2, "два");  //помещаем в ArrayList слова один, два, три под разными индексами
        a.add(3, "три");  //помещаем в ArrayList слова один, два, три под разными индексами
        printAl(a); //вызов метода
        if (a.contains("три")) { //Если a содержит элемент "три", добавляем элемент "четыре"
            a.add("четыре");
        }
        a.remove(2); //Удаляем индекс ArrayList-а номер 2, у которого элемент "два"
        printAl(a); //вызов метода
        if (a.indexOf("четыре") != 4) { /*Тут вопрос, как я понял тут условие, что если индекс ArrayList-а под номером четыре
            не равен индексу 4, то добавить елемент 4.2. И он добавляет, так какой же всё же индекс у 4*/
            a.add(4, "4.2");
        }
        printAl(a); //вызов метода
        if (a.contains("два")) { //Это условие не срабатывает
            a.add("2.2");
        }
        printAl(a); //вызов метода
    }

    public static void printAl(ArrayList<String> al) { //Тут прошу пояснить параметр этого метода
        for (String element : al)  { //для каждого элемента в массиве al: присвоить элемент переменной element
            // и запустить тело цикла
            System.out.print(element + " ");

        }

        System.out.println();



    }


}
Здравствуйте! Задача из книги "Изучаем Java" главы 6. Не очень понятен некоторый код. Строка 18. Как я понял при вызове метода add класса ArrayList передаётся два параметра, это его индекс и элемент. В строке 18 есть условие, что если экземпляр a, содержит элемент "три", то элемент добавляем элемент "четыре". Так какой же индекс, будет у этого элемента? Или тут не обязателен факт того, что ему будет присвоен индекс? Также прошу объяснить строку 29, а точнее его параметр (полностью он написан так (ArrayList<String> al) тут почему то в коде форума удалён <String>) . Как он связан с циклом for? Спасибо!