it-swarm.com.de

Java: Liste mit eindeutigen Elementen in der Reihenfolge

Gibt es in Java einen Listentyp, der Objekte in aufsteigender Reihenfolge speichert und nicht hinzufügt, wenn dieses Objekt zuvor hinzugefügt wurde. Ich weiß, Java-Maps können das, aber ich frage mich, ob es einen Listentyp gibt, der macht, was ich will. Ansonsten muss ich enthalten, equalsTo überschreiben und Methoden hinzufügen, oder?

20
meandbobbymcgee

Sie benötigen also eine Liste, die nur eindeutige Elemente enthält? Zwei Optionen:

  • Java.util.LinkedHashSet - behält die Reihenfolge des Einfügens bei, hat die gesetzte Semantik
  • aus commons-collection SetUniquieList - erlaubt Listenoperationen wie get(..) und set(..)
  • aus commons-collection ListOrderedSet
38
Bozho

Kommt darauf an, in welcher Reihenfolge du meinst.

14
mishadoff

TreeSet macht den Trick. Beispiel:

SortedSet<Integer> myOrderedUniqueList = new TreeSet<Integer>()

4
solendil

Ich denke, du bist nach einem SortedSet (dies ist eine Schnittstelle, die Set erweitert). Set ist wie eine Liste, enthält jedoch nur einen Wert von jedem Wert.

TreeSet ist eine häufig verwendete Implementierung von SortedSet

http://download.Oracle.com/javase/6/docs/api/Java/util/TreeSet.html

4
laher

TreeSet könnte genau das sein, was Sie brauchen.

Es speichert die Elemente in einem sortierten Baum. Sie können also in sortierter Reihenfolge über sie iterieren. Es ist keine Liste, aber sie ist besser in Bezug auf Add und Inhalten.

1
Petar Ivanov

SortedSet ist ein Subinterface von Set, das garantiert, dass die Elemente im Set sortiert werden. 

SortedSet<Integer> orderedSet = new TreeSet<Integer>();

Verwenden Sie sie, wenn Sie nicht doppelte Elemente in aufsteigender Reihenfolge der Elementwerte speichern müssen

0
devDeejay

Es ist keine Liste, aber Sie können sich Implementierungen von Set http://download.Oracle.com/javase/6/docs/api/Java/util/Set.html anschauen.

0
Rhand

Verwenden Sie Java.util.LinkedHashSet mit überschriebenem hashCode () und equals (Object obj) unter Verwendung der eindeutigen Eigenschaft (en).

0
fjkjava