Добрый день! Код написал, но свое решение не проходило проверку. Потом подсмотрел как другие делали, и вот где подсмотрел, там и не понял до конца как код работает :( Допустим у нас список из трех слов: {"собака", "кошка", "попугай"} ----------------------------------------- public static ArrayList<String> doubleValues(ArrayList<String> list) { for (int i = 0; i < list.size(); i++){ // Бегаем по списку, пока значение переменной i меньше длины массива. Здесь как я понимаю, уже в 0 индекс записалось слово "собака" list.add(i, list.get(i)); // Тут в начало списка мы добавляем полученное текущее значение i - первое слово в первой итерации ("собака"), то есть 2 слово "собака". И у нас уже 2 слова "собака" есть. i++; // Вопрос: зачем мы пишем i++ } return list; Потом то же самое для "кошка" и "попугай". Не ругайте сильно, если глупости пишу или очевидные вещи, просто хочу разобраться.