</>

Technology

Java Programs

Difficulty

Intermediate

Interview Question

Write a Java program to remove duplicates from an ArrayList.

Answer

Remove Duplicates from ArrayList

Method 1: LinkedHashSet (Preserves Order — Best)

Java
import java.util.ArrayList;
import java.util.LinkedHashSet;

public class RemoveDuplicates {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Selenium");
        list.add("TestNG");
        list.add("Cucumber");
        list.add("Selenium");     // duplicate
        list.add("TestNG");       // duplicate
        list.add("Maven");

        System.out.println("With duplicates:    " + list);

        // LinkedHashSet removes duplicates AND preserves insertion order
        LinkedHashSet<String> set = new LinkedHashSet<>(list);
        list.clear();
        list.addAll(set);

        System.out.println("Without duplicates: " + list);
    }
}

Output

CODE
With duplicates:    [Selenium, TestNG, Cucumber, Selenium, TestNG, Maven]
Without duplicates: [Selenium, TestNG, Cucumber, Maven]

Method 2: Java 8 Stream distinct()

Java
import java.util.stream.Collectors;

ArrayList<String> list = new ArrayList<>(
    Arrays.asList("Selenium", "TestNG", "Cucumber", "Selenium", "TestNG")
);

ArrayList<String> unique = list.stream()
    .distinct()
    .collect(Collectors.toCollection(ArrayList::new));

System.out.println(unique);
// → [Selenium, TestNG, Cucumber]

Method 3: Manual with Contains Check

Java
ArrayList<String> list = new ArrayList<>(
    Arrays.asList("A", "B", "C", "A", "B", "D")
);
ArrayList<String> unique = new ArrayList<>();

for (String item : list) {
    if (!unique.contains(item)) {
        unique.add(item);
    }
}
System.out.println(unique);  // → [A, B, C, D]

Remove Duplicate Integers

Java
ArrayList<Integer> nums = new ArrayList<>(Arrays.asList(1, 2, 3, 2, 4, 1, 5));
LinkedHashSet<Integer> set = new LinkedHashSet<>(nums);
ArrayList<Integer> result = new ArrayList<>(set);
System.out.println(result);  // → [1, 2, 3, 4, 5]

Automation Testing Relevance

Java
// Remove duplicate window handles before switching
Set<String> handles = driver.getWindowHandles();
ArrayList<String> uniqueHandles = new ArrayList<>(new LinkedHashSet<>(handles));

// Verify no duplicate rows in a web table
List<WebElement> rows = driver.findElements(By.css("table tr td:first-child"));
List<String> ids = rows.stream().map(WebElement::getText).collect(Collectors.toList());
long unique = ids.stream().distinct().count();
assertEquals(ids.size(), unique, "Duplicate rows found in table");

Follow AutomateQA