Daniel Thoma: Vergleich von Objekten

Beitrag lesen

Hallo lina,

Ich hab < und = bezüglich Deines Comparators gemeint. Ich kann das nochmal anders schreiben:

Sei c ein UserComparator, a und b zwei Objekte mit c.compare(a,b) < 0
Mit Deiner Implementierung gilt c.compare(a, null) == 0 und c.compare(n, null) == 0. Da c.compare(null, null) == 0 folgt daraus mit der Spezifikation von compare: c.compare(a, b) == 0 und somit ein Widerspruch.
Auf Deutsch: Da alle Objekte für Deinen  Comparator gleich null sind, müssen sie auch untereinander gleich sein.
Das alles hat eigentlich nichts mit Boolscher Algebra sondern nur mit den Axiomen von Ordnungs- und Äquivalenzrelationen zu tun. compare definiert im Prinzip solche Relationen.
Die zu erfüllenden Bedingungen sind auch alle in der API-Spezifikation aufgeführt: < http://java.sun.com/j2se/1.5.0/docs/api/java/util/Comparator.html#compare(T,%20T)>

Für mich ist es eigentlich eindeutig: wenn beide Objekte null sind - sind sie gleich (ähm... man könnte auch sagen "gleich wenig vorhanden" *g*).

Ja, es geht nicht um den Fall, dass beide null sind, sondern dass nur eines von beiden null ist.

Grüße

Daniel