List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("A");
list.add("B");
list.add("X");
Set<String> once = new HashSet<>();
Set<String> duplicates = new HashSet<>();
list.stream().forEach(s -> {
if (!duplicates.contains(s)) {
if (once.contains(s)) {
once.remove(s);
duplicates.add(s);
} else {
once.add(s);
}
}
});