Der Subtraktions- "Trick" zum Vergleichen zweier numerischer Werte ist gebrochen !!!
        int a = -2000000000;
        int b =  2000000000;
        System.out.println(a - b);
        
Hier ist a < bdoch a - bnoch positiv.
Verwenden Sie diese Redewendung NICHT. Es funktioniert nicht.
Außerdem , selbst wenn es funktioniert , wird es nicht eine wesentliche Verbesserung der Leistung, und kann in der Tat Kosten Lesbarkeit.
Siehe auch
- Java Puzzlers Puzzle 65: Eine seltsame Saga verdächtiger Art
  Dieses Puzzle hat mehrere Lektionen. Das spezifischste ist: Verwenden Sie keinen subtraktionsbasierten Komparator, es sei denn, Sie sind sicher, dass der Unterschied zwischen den Werten niemals größer als sein wird Integer.MAX_VALUE . Achten Sie generell auf intÜberlauf. Eine weitere Lektion ist, dass Sie "cleveren" Code vermeiden sollten. Bemühen Sie sich, klaren, korrekten Code zu schreiben, und optimieren Sie ihn nur, wenn er sich als notwendig erweist.