Рекурсия - удаление дубликатов
Я работаю над методом, который рекурсивно удаляет дубликаты элемента в ArrayList. Но я'Я столкнулся с небольшой проблемой, мой метод работает и удаляет некоторые элементы, но не все дубликаты.
Вот's мой вход:
100, 200, 200, 300, 400, 300, 100, 500, 500, 400, 100, 400, 100, 100
И здесь's вывод:
100, 200, 300, 400, 100, 500, 100
И мой метод:
public static void removeDuplicates(ArrayList list, int counter){
if(list == null){
throw new NullPointerException();
}
if(counter < list.size()){
if(list.contains(list.get(counter))){
list.remove(list.lastIndexOf(list.get(counter)));
}
removeDuplicates(list, ++counter);
}
}
Я понимаю что яm удаляет только последний элемент указанного значения, а затем переходит к следующему. Мне было интересно, как я должен изменить это, чтобы удалить все элементы, которые являются дубликатами. Кроме того, одна часть моего вывода, которая смущает меня, есть три значения:400', но только один появляется ввыход.
Спасибо за помощь.