yegor256 yegor256 - 1 month ago 10
Java Question

Is there an insertion order preserving Set that also implements List?

I'm trying to find an implementation of

java.util.List
and
java.util.Set
at the same time in Java. I want this class to allow only unique elements (as
Set
) and preserve their order (like
List
). Does it exist in JDK 6?

It's important to have
List<T>#add(int, T)
so I can insert into a specific position.

Answer

TreeSet is sorted by element order; LinkedHashSet retains insertion order. Hopefully one of those is what you were after :)

EDIT: Okay, now you've specified that you want to be able to insert at an arbitrary location, I suspect you'll have to write your own - just create a class containing a HashSet<T> and an ArrayList<T>; when adding an item, check whether or not it's in the set before adding it to the list.