Я изучаю класс Iterator
и как его использовать, и наш учитель поставил перед нами задачу использовать этот класс для циклического прохождения всего List
, поиска дубликатов и их удаления. Я пробовал следующий код:
void removeDuplicates(List<String> list) {
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
if (list.contains(iterator.next())) {
iterator.remove();
}
}
}
Конечно, этот код не будет работать, потому что каждый элемент находится в самом List
, поэтому он будет удалять каждый элемент в списке, делая егоопорожнить. Как мне исправить это заблуждение (особенно условное выражение if), чтобы я смог Iterator
удалить все повторяющиеся элементы?