Для экзамена я тренируюсь писать некоторые алгоритмы к финальному экзамену. Одним из них является создание метода reverse (), который удаляет дубликаты в List <>. Проблема в том, что метод void удаляет только один дубль или два. Как я могу изменить метод?
Здесь код файла List. java. Методы removeFromBack (), removeFromFront (), insertAtBack (), insertAtFront (), print (), isEmpty (), классы List и ListNode уже определены в книге Дейтеля Java. Кроме того, весь импорт выполнен:
public void removeDuplicates() {
ArrayList<T> toCheck = new ArrayList<T>();
ListNode<T> current = firstNode;
while (current != null) {
toCheck.add(current.data);
current = current.nextNode;
}
current = firstNode;
HashSet<T> toCheck2 = new LinkedHashSet<T>();
for (T element: toCheck) {
toCheck2.add(element);
}
for (T element: toCheck2) {
removeFromBack();
insertAtBack(element);
}
}