Failed to delete duplicates in array using ArrayList
•
Java
I want to remove duplicates from the array by using the array list The code seems to work in all cases unless the string [] array contains three copies of elements Why does this problem occur and how to solve it?
Test input -
array = {"D22","D22","D22"};
Output =
D22
D22
Expected output =
D22
public static String[] removeDuplicates(String [] array){
String [] noDups = null;
ArrayList<String> copy = new ArrayList<String>();
String first = "";
String next = "";
for(String s: array){
copy.add(s.trim());//Trimming
}
for(int i = 0; i < copy.size(); i++){
for(int j = i + 1; j < copy.size(); j++){
first = copy.get(i);
next = copy.get(j);
if(first.equals(next)){
copy.remove(j);
}
}
}
noDups = copy.toArray(new String[copy.size()]);
for(String s: noDups){
System.out.println(s);
}
return noDups;
}
Solution
This is because when you call remove, your counter will also increase, causing it to skip an element It's like
if(first.equals(next)){
copy.remove(j);
j--;
}
This problem should be solved
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
