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」の値が 3 つあるにもかかわらず、出力に表示されるのは 1 つだけです。
助けてくれてありがとう。