Мой список строк: роза, лоза, лира, спорт, сила, рот.
for (int i = 0; i < strings.size(); i++) {
if (strings.get(i).contains("р"))
strings.remove(strings.get(i));
}
return strings;
Вывод: лоза, спорт, сила
Почему так и как исправить? Спасибо
Илья
30 уровень
Это п****ц!!!
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
AlukardVampire hunter в The HellsingExpert
3 мая 2020, 12:16полезный
Потому что удаляя элемент, strings.size() уменьшается на единицу и список сдвигается в начало и при следующей итерации ты пропускаешь элемент сдвинутый в начало.
+4
Haumi Java Developer
3 мая 2020, 12:10
полный код прикрепите
0
Илья
3 мая 2020, 16:17
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>();
strings.add("роза");
strings.add("лоза");
strings.add("лира");
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 (int i = 0; i < strings.size(); i++) {
if (strings.get(i).contains("р"))
strings.remove(strings.get(i));
}
return strings;
}
}
0