Programming Tips - Java: Easy way to avoid duplicates in an ArrayList

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.