Date: 2016jul7
Update: 2025sep18
Language: Java
Q. Java: Easy way to avoid duplicates in an ArrayList<>
A. If the ArrayList is fairly short call contains() before adding.
As shown in this full demo:
import java.util.ArrayList;
class Demo {
static void addUnique(ArrayList<String> list, String item) {
if (!list.contains(item)) {
list.add(item);
}
}
public static void main(String []args) {
ArrayList<String> mylist = new ArrayList<>();
addUnique(mylist, "one");
addUnique(mylist, "two");
addUnique(mylist, "one");
System.out.println("mylist=" + mylist);
}
}
Output:
mylist=[one, two]
If you always do this when appending you won't get any duplicates.
If you are given an ArrayList which might have unwanted duplicates
I would convert it into a HashSet then back into an ArrayList.
list = new ArrayList<String>(new HashSet<String>(list));
But that doesn't retain the order.