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