The subtraction "trick" to compare two numerical value is broken!!!
        int a = -2000000000;
        int b =  2000000000;
        System.out.println(a - b);
        // prints "294967296"
Here, a < b, yet a - b is positive.
DO NOT use this idiom. It doesn't work.
Moreover, even if it does work, it will NOT provide any significant improvement in performance, and may in fact cost readability.
See also
- Java Puzzlers Puzzle 65: A Strange Saga of Suspicious Sort
This puzzle has several lessons. The most specific is: Do not use a subtraction-based comparator unless you are sure that the difference between values will never be greater than Integer.MAX_VALUE. More generally, beware ofintoverflow. Another lesson is that you should avoid "clever" code. Strive to write clear, correct code, and do not optimize it unless it proves necessary.