Я видел в разделе помощи решения через обычный цикл for, но я хочу попробовать решить через for each.
При прогоне через дебагер происходить следующее:
На первом цикле он заходит во внешний if, затем пропускает первый вложенный if и заходит во второй вложенный if. Пока всё верно. Во втором вложенном цикле он удаляет первое слово массива, я это чётко видел.
А вот вторую итерацию он не запускает совсем - до if компилятор не доходит, кажеться ложиться ещё при попытке запуска второй итерации цикла for.
Wtf?
package com.javarush.task.jdk13.task07.task0716;
import java.util.ArrayList;
/*
Р или Л
*/
public class Solution {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>();
strings.add("роза");
strings.add("лоза");
strings.add("лира");
strings = fix(strings);
for (String string : strings) {
System.out.println(string);
}
}
public static ArrayList<String> fix(ArrayList<String> strings) {
for (String word: strings) {
if (word.contains("р") || word.contains("л")) {
if (word.contains("л")) {
strings.add(word);
}
if (word.contains("р")) {
strings.remove(word);
}
}
}
return strings;
}
}