Let’s say you have a list of duplicate (and non-duplicate) items, and you want a new collection with only the duplicate items in there. The easiest way is to extend the
HashSet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public class DuplicatesOnlySet<E> extends HashSet<E>{ private final Set<E> uniques = new HashSet<E>(); public DuplicatesOnlySet(Collection<? extends E> c) { super.addAll(c); } @Override public boolean add(E e) { if(!this.uniques.add(e)) return super.add(e); return false; }} |
Call it like
1
| List<String> duplicates = new ArrayList<String>(new DuplicatesOnlySet<String>(original)) ; |
where
original is the Collection with the duplicate items.
No comments:
Post a Comment