В моем проекте пользователь вводит случайные буквы. Затем я перебираю my_list
, чтобы увидеть, есть ли какая-либо из этих случайных букв в my_list
. Если это так, я удаляю их с my_list
.Iterator not looping
Пример:
List<String> my_list
содержит: [a, b, c, d]
List<String> rand
содержит: [r, a]
Цель: a
будут удалены из my_list
Проблема: Iterator
петли через my_list
в поисках письма r
. Письмо r
не указано в my_list
. Но вместо того, чтобы переходить к следующему письму a
, то iterator
выходит из цикла и a
все еще остается в my_list
Может кто-то пожалуйста, скажите мне, почему мой цикл продолжает ломать после первого письма?
Вот мой код:
public void removeLetters(List<String> my_list, List<String> rand) {
Iterator<String> i = my_list.iterator();
for(String s : rand) {
while(i.hasNext()) {
Object o = i.next();
if(o.toString().equals(s)) {
i.remove();
i = my_list.iterator();
break;
}
}
}
}
Я надеюсь, что я объяснил, моя проблема достаточно хорошо. Пожалуйста, дайте мне знать, если мне нужно объяснить более подробно.
Благодаря
Почему бы не просто использовать 'my_list.removeAll (rand);'? – 323go