Als «comparator» getaggte Fragen

Eine allgemeine Schnittstelle zum Erstellen eines Objekts, die die Art des Vergleichs anderer Objekte angibt. Wenn Sie dieses Tag für umfangreiche Fragen zur Implementierung verwenden, markieren Sie die Codesprache, in der die Implementierung geschrieben ist.

28
Sortieren Sie die ArrayList der benutzerdefinierten Objekte nach der Eigenschaft
Ich habe über das Sortieren von ArrayLists mit einem Komparator gelesen, aber in allen Beispielen wurden Leute verwendet, compareTodie nach einigen Untersuchungen eine Methode für Strings sind. Ich wollte eine ArrayList von benutzerdefinierten Objekten nach einer ihrer Eigenschaften sortieren: einem Date-Objekt ( getStartDay()). Normalerweise vergleiche ich sie mit, item1.getStartDate().before(item2.getStartDate())also habe …
1145 java  sorting  date  comparator 

11
"Vergleichsmethode verstößt gegen allgemeinen Vertrag!"
Kann mir jemand in einfachen Worten erklären, warum dieser Code eine Ausnahme auslöst: "Die Vergleichsmethode verstößt gegen ihren allgemeinen Vertrag!" Und wie behebe ich sie? private int compareParents(Foo s1, Foo s2) { if (s1.getParent() == s2) return -1; if (s2.getParent() == s1) return 1; return 0; }
187 java  comparator 

14
Verwendung von Comparator in Java zum Sortieren
Ich habe gelernt, wie man das Vergleichbare benutzt, aber ich habe Schwierigkeiten mit dem Komparator. Ich habe einen Fehler in meinem Code: Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comparable at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at java.util.Collections.sort(Unknown Source) at New.TestPeople.main(TestPeople.java:18) Hier ist mein Code: import java.util.Comparator; …
169 java  sorting  comparator 



19
Verwendung von Comparable und Comparator
Ich habe eine Liste von Objekten, die ich auf einem Feld sortieren muss, z. B. Punktzahl. Ohne viel nachzudenken habe ich eine neue Klasse geschrieben, die Comparator implementiert, die die Aufgabe erledigt und funktioniert. Wenn ich jetzt zurückblicke, frage ich mich, ob ich stattdessen meine Klasse Comparable implementieren lassen sollte, …

8
Wie funktioniert sort () von Javascript?
Wie sortiert der folgende Code dieses Array in numerischer Reihenfolge? var array=[25, 8, 7, 41] array.sort(function(a,b){ return a - b }) Ich weiß, dass, wenn das Ergebnis der Berechnung ist ... Weniger als 0 : "a" ist so sortiert, dass es einen niedrigeren Index als "b" aufweist. Null: "a" und …

4
Sehr verwirrt durch Java 8 Comparator Typ Inferenz
Ich habe den Unterschied zwischen Collections.sortund untersucht list.sort, insbesondere in Bezug auf die Verwendung der Comparatorstatischen Methoden und ob Parametertypen in den Lambda-Ausdrücken erforderlich sind. Bevor wir beginnen, weiß ich, dass ich Methodenreferenzen verwenden könnte, z. B. Song::getTitleum meine Probleme zu lösen, aber meine Abfrage hier ist nicht so sehr …

10
Java-Fehler: Die Vergleichsmethode verstößt gegen den allgemeinen Vertrag
Ich habe viele Fragen dazu gesehen und versucht, das Problem zu lösen, aber nach einer Stunde Googeln und viel Ausprobieren kann ich es immer noch nicht beheben. Ich hoffe, einige von Ihnen haben das Problem erkannt. Das bekomme ich: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) …

1
Null-Safe-Mapping-Komparator mit Standardimplementierungen
Gibt es eine integrierte Möglichkeit, einen nullsicheren Mapping-Komparator in Java 8 zu erstellen, ohne eine eigene Implementierung von zu schreiben Comparator? Wenn der folgende Code ausgeführt wird, wird eine NPE verursacht, da das keyExtractorArgument von Comparator.comparing()möglicherweise einen nullWert zurückgibt: public class ToSort { private String sortBy; public ToSort(String sortBy) { …

1
Warum werden beim Entfernen aus einem TreeSet mit einem benutzerdefinierten Komparator keine größeren Elemente entfernt?
Beachten Sie bei Verwendung von Java 8 und Java 11 Folgendes TreeSetmit einem String::compareToIgnoreCaseKomparator: final Set<String> languages = new TreeSet<>(String::compareToIgnoreCase); languages.add("java"); languages.add("c++"); languages.add("python"); System.out.println(languages); // [c++, java, python] Wenn ich versuche, die genauen Elemente in zu entfernen TreeSet, funktioniert dies: Alle angegebenen Elemente werden entfernt: languages.removeAll(Arrays.asList("PYTHON", "C++")); System.out.println(languages); // [java] …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.