Meinst du wie LinkedHashSet? Dadurch bleibt die Reihenfolge der Eingabe erhalten, es werden jedoch keine Duplikate zugelassen.
IMHO, es ist eine ungewöhnliche Anforderung, aber Sie können eine Liste ohne Duplikate schreiben.
class SetList<T> extends ArrayList<T> {
@Override
public boolean add(T t) {
return !super.contains(t) && super.add(t);
}
@Override
public void add(int index, T element) {
if (!super.contains(element)) super.add(index, element);
}
@Override
public boolean addAll(Collection<? extends T> c) {
boolean added = false;
for (T t : c)
added |= add(t);
return added;
}
@Override
public boolean addAll(int index, Collection<? extends T> c) {
boolean added = false;
for (T t : c)
if (!super.contains(t)) {
super.add(index++, t);
added = true;
}
return added;
}
}
Comparator? Möchten Sie auch die Semantik derListSchnittstelle?