In Java habe ich eine Set
, und ich möchte daraus eine sortierte machen List
. Gibt es eine Methode im java.util.Collections
Paket, die dies für mich erledigt?
java
sorting
collections
Jeremy Stein
quelle
quelle
Util
Klasse enthält dieasSortedList()
Methode, die ich geschrieben habe. Mit anderen Worten, Sie schreiben dieUtil
Klasse selbst und fügen diesen Code ein.Sortiertes Set:
oder:
quelle
Set
?new TreeSet
akzeptiertCollection
, nicht nurSet
s. Nicht jeder, der diese Antwort liest, wird ein verwendenSet
, obwohl dies die ursprüngliche Frage ist.… Sollte jedoch den Trick machen. Fügen Sie gegebenenfalls mit Generika Geschmack hinzu.
quelle
Comparable
diecompareTo
Methode jederzeit implementieren und überschreiben .So können Sie es mit den Streams von Java 8 machen:
oder mit einem benutzerdefinierten Komparator:
quelle
Es ist immer sicher, entweder die Comparator- oder die Comparable-Schnittstelle zu verwenden, um eine Sortierimplementierung bereitzustellen (wenn das Objekt keine String- oder Wrapper-Klasse für primitive Datentypen ist). Als Beispiel für eine Komparatorimplementierung zum Sortieren von Mitarbeitern nach Namen
Der Komparator ist nützlich, wenn Sie einen unterschiedlichen Sortieralgorithmus für dasselbe Objekt benötigen (z. B. Emp-Name, Emp-Gehalt usw.). Die Single-Mode-Sortierung kann mithilfe der vergleichbaren Schnittstelle für das gewünschte Objekt implementiert werden.
quelle
Es gibt keine einzige Methode, um das zu tun. Benutze das:
quelle
Sie können ein Set in ein konvertieren, in
ArrayList
dem Sie dieArrayList
Verwendung sortieren könnenCollections.sort(List)
.Hier ist der Code:
quelle
Dabei ist Originalset = unsortierte Menge und Liste = die zurückzugebende Liste
quelle
@ Jeremy Stein Ich wollte den gleichen Code implementieren. Außerdem wollte ich das Set nach Liste sortieren. Anstatt Set zu verwenden, habe ich Set-Werte in List konvertiert und diese Liste nach der Variablen sortiert. Dieser Code hat mir geholfen,
quelle
Ich verwende diesen Code, den ich praktischer finde als die oben akzeptierte Antwort:
quelle