Я решил задачу, если выставить в цикле for i < 6, то все работает.
Но я решал задачу абстрактно, будто мне нужен алгоритм, когда я не знаю сколько в массиве элементов. Естественно я выставил i < list.size() * 2. Ведь я знаю что массив N должен стать N * 2, в котором после каждого элемента добавляется "именно". Но из за i < list.size(), программа не работает.
Когда размер массива уже стал 6, он вновь запускает тело цикла и итерация становится 6ая. А 6ого элемента в массиве из 6 элементов нету.
Вот это я и не могу понять, почему он входит в тело цикла? if (6 < 6) не работает в теле цикла. Так почему же в самом цикле оно проходит проверку?
package com.javarush.task.task07.task0715;
import java.util.ArrayList;
/*
Продолжаем мыть раму
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
ArrayList<String> list = new ArrayList<String>();
list.add("мама");
list.add("мыла");
list.add("раму");
if (6<6) System.out.println("WUT");
for (int i = 0; i < list.size() * 2; i++)
{
System.out.println("Размер массива: " + list.size() + ". Текущая итерация: " + i);
if (!list.get(i).equals("именно"))
{
System.out.println("Итерация " + i + " заполнена. Добавляем на следующий шаг \"именно\"");
list.add(i+1, "именно");
}
else
{
System.out.println("тут находится слово именно");
}
}
for (String s : list)
{
System.out.println(s);
}
}
}