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");
