java - Does Comparator work differently with wrapper class? -
I fail to sort student ID from database, after a long time it detects that it is incorrectly Why is the solution, I have concluded that this Comparator works differently with the rapper class?
Public Class comparator demo {public static zero main (string [] args) {Comparator & lt; Integer & gt; IDComparator = new comparison & lt; Integer & gt; () {@ Override Public Int Comparison (integer first ID, integer sec ID) {return firstID & lt; SecondID? (-1): (first id == sec id? (0): (1)); }}; System.out.println (IDComparator.compare (new integer (1), new integer (1))); // print1 system.out.printLN (IDComparator.compare ((1), (1))); // print}}
What's going on here?
In Java, when comparing two references to ==
By using, the result will be true
and if only two references point to the same exact object, then when you enter new integer (1)
to new integer
false
primitives (like int
) are compared with (1) , ==
When using ==
to compare with, when values are equal, return true
Ega
use a solution firstID.equals (secondID)
For more information
UPDATE
As mentioned by JBNizet, you can return
FirstID & lt; SecondID? (-1): (first id == sec id? (0): (1));
with
back to firstID.compareTo (secondID);
The code that makes reading a lot easier and definitely uses the right comparison.
Comments
Post a Comment