Не понимаю, как тут удваиваются значения.
Это понимаю for(int i = 0;i < list.size();i++)
Это понимаю list.add(i+1,list.get(i))
--------------------------------- Не понимаю чем в удваивании помогает нижний i++ (что и для чего служит в java "инкремент" я знаю)
--------------------------------- Логику удваивания не понимаю
for(int i = 0;i < list.size();i++){
list.add(i+1,list.get(i));
i++;
Я правильно понимаю, что в цикле - в теле for происходит следующее: при каждой итерации в ячейку i добавляется "строка/значение", а после первой строчки кода цикла for мы с помощью инкремента "i++" мы сдвигаемся на одну ячейку вниз и опять добавляем "строчку/значение". Тем самым мы удваиваем строчку. ---- А потом цикл повторяется, но с новым "i". _____Так все работает?
ОДНАКО НЕ ПОНИМАЮ, КАК НИЖНЕЕ """" i++ """" ТУТ ПОМОГАЕТ?
Виктор Гюго
37 уровень
НЕПОНИМАЮ. Плиз! Помогите реальным пояснением
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
7 февраля 2021, 08:39полезный
Не совсем так.
Второй i++ нужен, чтобы не дублировать строку, которая была добавлена на предыдущем шаге. Иначе цикл будет бесконечно вставлять одну и ту же строку.
Например, у тебя список
0. альфа
1. бета
2. гамма
При i = 0 цикл добавит еще одну "альфу" на позицию i+1:
0. альфа
1. альфа
2. бета
3.гамма
Теперь если ты не сделаешь i++, то на следующей итерации i будет равно 1, и тогда элемент с индексом 1 (снова альфа) будет добавлен на позицию 2. Получится
0. альфа
1. альфа
2. альфа
3. бета
4.гамма
И так далее.
Поэтому i++ нужен, чтобы цикл "перескочил" только что добавленный элемент.
Того же можно добиться, изменив в самом цикле условие с i++ на i+=2.
+4
AndreyJava Developer в Инфотранс
6 февраля 2021, 20:37
Я так понимаю что это нужно для дублирования строки , и ваше понимание правильное, но есть более простой вариант: два раза вызывать метод add() для каждой переданной строки
0
Ksenia VolkovaJava Developer в DXCMaster
7 февраля 2021, 08:31
Два раза add - это если бы мы добавляли в другой, новый список. А тут добавление идет в тот же.
0