Sie geben nur -1 (kleiner als) oder +1 (größer als) zurück, niemals 0 (entspricht).
Vergleicht seine beiden Argumente für Ordnung. Gibt eine negative Ganzzahl, Null oder eine positive ganze Zahl zurück, wenn das erste Argument kleiner als, gleich oder größer als die zweite Zahl ist.
In der vorangehenden Beschreibung die Bezeichnung sgn (Ausdruck) bezeichnet die mathematische signum-Funktion, die eine von -1 definiert ist 0 zurückzukehren, oder 1 je nachdem, ob der Wert des Ausdrucks ist negativ, Null oder positiv .
Der Implementierer muss sicherstellen, dass sgn (vergleiche (x, y)) == -sgn (vergleiche (y, x)) für alle x und y. (Dies bedeutet, dass (x, y) vergleichen, muss eine Ausnahme auslösen, wenn und nur vergleichen, wenn (y, x) eine Ausnahme auslöst.)
Der Implementierer muss auch dafür sorgen, dass die Beziehung ist transitiv: ((vergleiche (x, y)> 0) & & (vergleiche (y, z)> 0)) impliziert Vergleich (x, z)> 0.
Schließlich muss der Implementierer sicherstellen, dass vergleichen (x, y) == 0 impliziert dass sgn (vergleichen (x, z)) == sgn (vergleichen (y, z)) für alle z.
Es ist allgemein der Fall, aber nicht unbedingt erforderlich, dass (vergleiche (x, y) == 0) == (x.equals (y)). Im Allgemeinen sollte jeder Vergleicher, der diese Bedingung verletzt, diese Tatsache deutlich anzeigen. Die empfohlene Sprache ist "Hinweis: Dieser Komparator führt Ordnungen, die sind inkonsistent mit gleich."
Können Sie zeigen, wo Sie die Art sind nennen? – Kon
Haben Sie versucht, '! =' Anstelle von bitweiser Manipulation zu verwenden? –
Nun, es wird eindeutig nicht funktionieren, wenn "wahr, falsch" ist das gleiche wie "falsch, wahr". (Angenommen, Sie sortieren "true" und "false") – Zong