Ich versuche, eine Arrayliste von Objekten nach einem bestimmten Wert innerhalb des Objekts zu sortieren. Was wäre der beste Ansatz, um so etwas zu tun? Sollte ich Collections.sort () mit einer Art Komparator verwenden?
Ich versuche, eine Liste von Objekten nach einem Gleitkommawert zu sortieren, den sie in einer der Variablen enthalten.
EDIT: Das habe ich bisher:
public class CustomComparator implements Comparator<Marker> {
@Override
public int compare(Mark o1, Mark o2) {
return o1.getDistance().compareTo(o2.getDistance());
}
}
Der Fehler lautet: Beim Vergleich des primitiven Typs double kann compareTo (double) nicht aufgerufen werden.
Liegt es daran, dass ein Komparator nichts anderes als einen bestimmten Typ zurückgeben kann?
java
android
sorting
collections
comparator
James andresakis
quelle
quelle
Antworten:
Sie sollten Comparable anstelle eines Comparators verwenden, wenn Sie nach einer Standardsortierung suchen.
Siehe hier, dies kann hilfreich sein - Wann sollte eine Klasse vergleichbar und / oder vergleichend sein?
Versuche dies -
quelle
Befolgen Sie diesen Code, um eine beliebige ArrayList zu sortieren
quelle
Ich denke, das wird dir besser helfen
quelle
Jetzt muss nicht
OBJECT
mehr geboxt werden (dh es muss nicht mehr mit einem neuen Operator erstellt werden. Verwenden Sie valueOf, das mit compareTo of Collections.Sort .. installiert wurde.)1) Bei aufsteigender Reihenfolge
1) Bei absteigender Reihenfolge
quelle
"Android-Java" unterscheidet sich hier keineswegs von "normalem Java", also
Collections.sort()
wäre ja ein guter Ansatz.quelle
Wie benutzt man:
quelle
Sie können zwei Zeichenfolgen damit vergleichen.
Und jetzt machen Sie eine ContactData-Klasse.
Hier ist die Kontaktliste:
quelle
Erstellen Sie entweder eine
Comparator
, die Ihre Objekte vergleichen kann, oder wenn alle Instanzen derselben Klasse sind, können Sie diese Klasse implementieren lassenComparable
. Sie können dann Collections.sort () verwenden, um die eigentliche Sortierung durchzuführen.quelle
compareTo()
Methode führen Sie den Vergleich durch. Ein wenig googeln gab einige detaillierte Beispiele, wie man es benutzt, hier ist eines davon: javadeveloper.co.in/java-example/java-comparable-example.htmlIch habe eine Listenansicht, in der die Informationen zu allen Clients angezeigt werden, für die ich den Clientnamen mithilfe dieser benutzerdefinierten Vergleichsklasse sortiere. Abgesehen von englischen Buchstaben, die ich mit dieser setStrength (Collator.SECONDARY) verwalte, haben sie ein zusätzliches Lerret.
quelle
Modellklasse:
Legen Sie nun die Daten in ArrayList fest
Sortieren Sie nun ArrayList
Zusammenfassung: Ihre Daten werden datenweise sortiert
quelle
Es ist sehr einfach für Kotlin!
listToBeSorted.sortBy { it.distance }
quelle
Für Kotlin können Sie diese Funktion verwenden
und nenne es einfach in deinem
activity
oderfragment
vonquelle