Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen

Einführung

Eine rudimentäre kleine Geschichte über Javas compareTo. Ich möchte Leute, die sagen: "Das Ergebnis von" compareTo "ist, dass Sie nicht sofort wissen, welches ist."

compareTo vergleicht immer mit 0

Das Ergebnis von Comparable # compareTo sollte immer mit 0 verglichen werden. Möglicherweise wird ein Code angezeigt, der mit "-1" oder "1" verglichen wird, was falsch ist.

Das Folgende wird aus [Standard API JavaDoc] zitiert (https://docs.oracle.com/javase/jp/9/docs/api/java/lang/Comparable.html#compareTo-T-) (ich betone es) tat)

Rückgabewert: ** Negative Ganzzahl ** wenn dieses Objekt kleiner als das angegebene Objekt ist, ** Null ** wenn gleich, ** Positive Ganzzahl ** wenn größer

Wie oben erwähnt, gibt es keine Garantie dafür, dass feste Werte wie "-1" und "1" zurückgegeben werden. (Obwohl es oft implementiert wird, um "-1" oder "1" zurückzugeben)

Beispielcode

Sie können gehorsam lesen und schreiben, indem Sie "compareTo" auf der linken Seite des Vergleichsoperators [^ 1] aufrufen und "0" auf der rechten Seite schreiben.

compareTo


if (obj1.compareTo(obj2) == 0) {
  System.out.println("obj1 = obj2");
}

if (obj1.compareTo(obj2) != 0) {
  System.out.println("obj1 ≠ obj2");
}

if (obj1.compareTo(obj2) < 0) {
  System.out.println("obj1 < obj2");
}

if (obj1.compareTo(obj2) <= 0) {
  System.out.println("obj1 ≦ obj2");
}

if (obj1.compareTo(obj2) > 0) {
  System.out.println("obj1 > obj2");
}

if (obj1.compareTo(obj2) >= 0) {
  System.out.println("obj1 ≧ obj2");
}

schließlich

Wenn Sie einen gründlichen Vergleich mit "0" durchführen, werden Sie durch das Ergebnis von "compareTo" nicht verwirrt.

[^ 1]: ==, < usw.

Recommended Posts

Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Holen Sie sich das Ergebnis von POST in Java
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
Vergleichen Sie Elemente eines Arrays (Java)
Ausgabe des Buches "Einführung in Java"
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Dinge, die Sie beim Schreiben von Java beachten sollten
Berechnen Sie die Ähnlichkeitsbewertung von Zeichenketten mit JAVA
So zeigen Sie das Ergebnis des Ausfüllens des Formulars an
[Java] Geben Sie das Ergebnis von ffprobe -show_streams in JSON aus und ordnen Sie es einem Objekt in Jackson zu
Java Willkommen im Sumpf der zweidimensionalen Arrays
Java-Ingenieure im Vergleich zum Erlernen der grundlegenden Grammatik von Ruby jetzt Teil 1 (Basic, Variablen)
Ich habe versucht, die Infrastrukturtechnologie der Ingenieure heutzutage mit dem Kochen zu vergleichen.
Bedingte Verzweigung des Ergebnisses einer SQL-Anweisung, die nur eine in Java durchsucht
[Java] So erhalten Sie die URL der Übergangsquelle
CI die Architektur von Java / Kotlin-Anwendungen mit ArchUnit
Wie schreibe ich Scala aus der Perspektive von Java
[Java] So erhalten Sie den Maximalwert von HashMap
Überwachen Sie den internen Status von Java-Programmen mit Kubernetes
Überprüfen Sie das Verhalten von Java Intrinsic Locks mit bpftrace
HTTPS-Verbindung mit Java zum selbstsignierten Zertifikatsserver
Überprüfen Sie das Ergebnis der generischen Parameterinferenz mit JShell
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
[Java] Dinge, die Sie bei der Ausgabe von FizzBuzz beachten sollten
Die Geschichte von dto, dao-like mit Java, SQLite
Ersetzen Sie nur einen Teil des URL-Hosts durch Java
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
[Java] Ändern Sie die Verarbeitung entsprechend der Situation mit dem Strategiemuster
Nur der Stream der obersten Ebene kann mit Java Stream parallelisiert werden.
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Java] Der Abdeckungsbericht konnte nicht durch Kombinieren der Standardmethode der Cobertura + -Schnittstelle erstellt werden
Kommen Sie zu den Abkürzungen aus den fünf Beispielen für kursive Java-Listen
20190803_Java & k8s on Azure Die Geschichte vom Festivalbesuch
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
[Java] Vereinfachen Sie die Implementierung der Datenverlaufsverwaltung mit Reladomo
Initialisierung mit einer leeren Zeichenfolge für eine Instanz vom Typ Java-Zeichenfolge
[Java] Um die Typinformationen der Typparameter zur Laufzeit zu kennen
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
Memo zum stillen Schreiben der Quelle, die brauchbar zu sein scheint, und das Ergebnis der Kompilierung Execution-Java
So leiten Sie den letzten Tag des Monats in Java ab
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
Vergleichen Sie Java 8 Optional mit Swift
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
Gibt an, ob die Serverseite zum Zeitpunkt der Systemwiederherstellung mit Kotlin oder Java erstellt werden soll
Eingabe in die Java-Konsole
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
Lesen Sie die Daten der Shizuoka Prefecture Point Cloud DB mit Java und versuchen Sie, die Baumhöhe zu ermitteln.
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
[Java] Verschiedene Zusammenfassungen an die Leiter von Klassen und Mitgliedern
Zurück zum Anfang, Erste Schritte mit Java ② Steueranweisungen, Schleifenanweisungen
[Java1.8 +] Mit LocalDate das Datum des nächsten × Tages abrufen
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Java-Argumente, die mit gradle run ausgeführt werden sollen, können mit --args angegeben werden (seit Gradle 4.9).