Sind zwei Objekte immer gleich, wenn ihre Methode CompareTo() null zurückgibt?
Sind zwei Objekte immer gleich, wenn ihre Methode CompareTo() null zurückgibt?

Video: Sind zwei Objekte immer gleich, wenn ihre Methode CompareTo() null zurückgibt?

Video: Sind zwei Objekte immer gleich, wenn ihre Methode CompareTo() null zurückgibt?
Video: Tim Maudlin Λ Palmer: Fractal Geometry, Non-locality, Bell 2024, Kann
Anonim

Es ist empfohlen, dass vergleichen mit nur kehrt zurück 0, wenn ein Anruf an gleich An die gleichen Objekte möchten Rückkehr wahr: vergleichen mit (e2) == 0 hat das gleiche boolescher Wert als e1. gleich (e2) für jedes e1 und e2 der Klasse C. Beachten Sie, dass null ist keine Instanz einer Klasse, und e.

Ist es außerdem möglich, dass equals() false zurückgibt, selbst wenn der Inhalt zweier Objekte gleich ist?

4 Antworten. In Java die Methode public boolean gleich ( Objekt obj) wird von der geerbt Objekt . Die Implementierung der Methode, wie sie in der Objekt Klasse ist das gleich Methode wird zurück, wenn und nur wenn das zwei Objekte verglichen werden die gleich Beispiel.

Anschließend stellt sich die Frage, warum CompareTo () mit der Methode equals () in Java konsistent sein sollte? Dies liegt daran, dass die Kartenschnittstelle in Bezug auf die gleich Operation, aber eine Karte führt alle wichtigen Vergleiche mit ihrer vergleichen mit (oder vergleichen) Methode , also zwei Schlüssel, die gelten gleich dadurch Methode sind aus Sicht der sortierten Karte gleich.

Vor diesem Hintergrund, was ist der Unterschied zwischen der == equals () und der CompareTo ()-Methode?

vergleichen mit : Vergleicht zwei Strings lexikografisch. gleich : Vergleicht diese Zeichenfolge mit dem angegebenen Objekt. vergleichen mit vergleicht zwei Strings nach ihren Zeichen (am gleichen Index) und gibt dementsprechend eine ganze Zahl (positiv oder negativ) zurück. gleich() prüft, ob zwei Objekte gleich sind oder nicht und gibt einen booleschen Wert zurück.

Können wir die Methode CompareTo überschreiben?

Vergleiche mit Methode überschreiben Es sollte eine negative ganze Zahl (normalerweise -1) zurückgeben, wenn das aktuelle auslösende Objekt kleiner als das übergebene ist einer , und eine positive ganze Zahl (normalerweise +1), wenn sie größer ist als und 0, wenn sie gleich ist. CompareTo-Methode sollte eine Ausnahme auslösen, wenn das übergebene Objekt einen inkompatiblen Typ oder null hat.

Empfohlen: