我正在研究一种以递归方式删除 ArrayList 中元素的重复项的方法。但是我遇到了一些问题,我的方法有效并删除了一些元素,但不是所有的重复项。
这是我的输入:
100, 200, 200, 300, 400, 300, 100, 500, 500, 400, 100, 400, 100, 100
这是输出:
100, 200, 300, 400, 100, 500, 100
还有我的方法:
public static void removeDuplicates(ArrayList<Integer> 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);
}
}
我知道我只是删除所述值的最后一个元素,然后迭代到下一个元素。我想知道如何更改它以删除所有重复的元素。此外,我的输出中让我感到困惑的一部分是,“400”有三个值,但输出中只显示了一个。
谢谢您的帮助。