Gewusst wie: Sortieren einer ArrayList durch seine Elemente Größe in Java?
Also ich habe ein List<String> L1 = new ArrayList<>()
mit den folgenden strings als Elemente:
- l, l, u, u.
- r, u, d, l, d, l, u.
- l, u, d, r, r, r, r, r, u, d.
- l, u.
- l, u, r.
Wie Sortiere ich die list
durch die element-Größe, so dass im Endzustand L1 sollte wie folgt sein:
- l, u.
- l, u, r.
- l, l, u, u.
- r, u, d, l, d, l, u.
- l, u, d, r, r, r, r, r, u, d.
Habe ich versucht, mit Collections.sort
, aber das sortiert alphabetisch, das ist natürlich nicht das, was ich will.
InformationsquelleAutor miTzuliK | 2015-03-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke was du suchst ist Sammlungen.sort(java.util.List, java.util.Komparator). Mit ihm können Sie eine benutzerdefinierte
Comparator
vergleicht die strings, basierend auf der Länge statt der alphabetischen Beziehung.Etwas wie dieses:
Integer.compareTo(o1.length(), o2.length())
.Integer.compare()
.Vorausgesetzt Java 8 verfügbar ist, und auch, dass die Liste vom Typ
List<String>
:Erzeugt einen neuen
Comparator
verwendet, die die Länge der Zeichenfolge, die als Grundlage für die Sortierung, sortiert dann nach es. Die Liste ist sortiert von kurz bis lang, aber wenn das unerwünscht ist......würde invertieren es um die Sortierung der längsten strings zuerst.
Wenn die Liste ist eigentlich eine Liste von Listen (die Frage ist etwas unklar, auf dass),
List::size
würde anstelle von verwendet werdenString::length
.String
Instanzen.Können Sie alle Sortier-Technik(bubble,insertion, etc.) Sortieren Sie die Elemente der Arraylist.Hier benutze ich bubble sort zum Sortieren der Elemente der Arraylist.