equals() != compareTo() ?

Status
Nicht offen für weitere Antworten.

micbur

Bekanntes Mitglied
Hallo,

ist es korrekt, dass ein o.equals(b) eine andere Bedingung prüft als o.compareTo(b) == 0?
o und b sind derselben Klasse, die ich geschrieben habe. Die Klasse implements Comparable.

Ciao, micbur
 
A

Anmeldeboykottierer

Gast
Hi,
deine Frage kann nicht pauschal mit ja oder nein beantwortet werden.
Wird das Comparable Interface implementiert, sagst du damit aus, dass diese Klasse mit anderen Instanzen vergleichbar ist, es hier ein größer, kleiner und gleich gibt.
Equals hingegen prüft nur auf Gleichheit. Hast du zwei beliebige Referenzen, dann weißt du das die gleich sind wenn sie auf das gleiche Objekt zeigen.
Nimm als Beispiel einfach zwei Listen, wann ist eine Liste größer als die andere? Sagen wir mal sie enthalten gleich viele Elemente, die eine enthält 10 Strings, die andere 10 Integer Werte, welche ist jetzt also größer oder kleiner?
Gleich oder ungleich kannst du dagegen leicht prüfen. Da sie unterschiedliche Elemente enthalten dürfte klar sein, dass sie nicht gleich sein können.
 
A

Anmeldeboykottierer

Gast
In der Java API steht dann auch:
The natural ordering for a class C is said to be consistent with equals if and only if (e1.compareTo((Object)e2) == 0) has the same boolean value as e1.equals((Object)e2) for every e1 and e2 of class C.

Also um es nochmal zu sagen, du prüfst mit Comparable einfach etwas anderes, aber die Gleichheit wird genau wie bei equals entschieden! (nur gibt es noch zusätzlcih eine Ordnung)

Gruß Der Anmeldeboykottierer
 

micbur

Bekanntes Mitglied
Hallo,

danke. Ja, stimmt, war unklar gestellt. Ich dachte, mit Comparable bekomme ich equals() geschenkt. Mich interessiert an der Stelle nur (deep) Gleichheit bzw. (deep) Ungleichheit. Daher mein erster Frust, dass ich dann doch compareTo() == 0 nutzen musste. ;-)

Ciao, micbur
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M equals & compareTo Allgemeine Java-Themen 15
mihe7 equals und instanceOf pattern matching Allgemeine Java-Themen 9
P Strings: equals vs == Allgemeine Java-Themen 47
F Methoden hashCode() & equals() Allgemeine Java-Themen 13
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
S equals-Methode bestimmer Klassen abfangen Allgemeine Java-Themen 2
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
T Collections TreeSet.contains ruft nicht .equals? Allgemeine Java-Themen 4
H Problem mit der .equals()-Methode Allgemeine Java-Themen 2
T Compiler-Fehler not equals Allgemeine Java-Themen 22
I HashMap key wird nicht erkannt trotz überschriebener equals/hashCode Methode Allgemeine Java-Themen 6
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
A mit .equals Array befüllen schlägt teilweise fehl Allgemeine Java-Themen 3
G Probleme mit equals Allgemeine Java-Themen 3
R Merkwürdiges Verhalten der equals Method Allgemeine Java-Themen 4
tuttle64 equals() und == Allgemeine Java-Themen 4
B Probleme mit eigener equals Methode Allgemeine Java-Themen 18
H double dispatch und equals(Object) Allgemeine Java-Themen 6
S equals - Identität ändern bei Vererbung? Allgemeine Java-Themen 5
fastjack jUnit und Test von equals, hashCode, toString Allgemeine Java-Themen 11
K Collection.contains()/retainAll() mit Referenzgleichheit statt equals()? Allgemeine Java-Themen 2
J Best Practice für implementierung von equals(...) Allgemeine Java-Themen 7
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
T Wie intelligent ist dieses überschriebene .equals() ? Allgemeine Java-Themen 13
G Objektvergleich mit equals Allgemeine Java-Themen 5
vogella Überschreiben von equals und hashcode für Collection Allgemeine Java-Themen 7
M String#equals(), Probleme mit großen Strings? Allgemeine Java-Themen 4
André Uhres equals überschreiben Allgemeine Java-Themen 31
F Problem: mehrere Interfaces definieren equals() neu Allgemeine Java-Themen 24
A equals() macht nicht, was es soll Allgemeine Java-Themen 4
B Equals Methode überschreiben mit Array Allgemeine Java-Themen 2
M String mit equals() vergleichen - Frage Allgemeine Java-Themen 3
S equals überladen Allgemeine Java-Themen 15
S Mal was allgemeines zu equals() Allgemeine Java-Themen 12
J Arrays vergleichen mit equals Allgemeine Java-Themen 8
Simon16 compareTo Methode überschreiben Allgemeine Java-Themen 4
H compareTo() Allgemeine Java-Themen 1
S compareTo() überschreiben - Problem Allgemeine Java-Themen 8
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
K compareTo() für Spielbretter Allgemeine Java-Themen 2
P compareTo() Allgemeine Java-Themen 2
G CompareTo Allgemeine Java-Themen 4
T compareTo auf eine Klasse anwenden Allgemeine Java-Themen 20

Ähnliche Java Themen

Neue Themen


Oben