How compare() method works in Java
Prerequisite: Comparator Interface in Java, TreeSet in Java
The compare() method in Java compares two class specific objects (x, y) given as parameters. It returns the value:
- 0: if (x==y)
- -1: if (x < y)
- 1: if (x > y)
Syntax:
public int compare(Object obj1, Object obj2)
where obj1 and obj2 are the two objects to be compared using compare() method.
Example:
To show working of compare() method using Integer Class.
Java
import java.lang.Integer;
class Gfg {
public static void main(String args[])
{
int a = 10 ;
int b = 20 ;
System.out.println(Integer.compare(a, b));
int x = 30 ;
int y = 30 ;
System.out.println(Integer.compare(x, y));
int w = 15 ;
int z = 8 ;
System.out.println(Integer.compare(w, z));
}
}
|
How is the return value evaluated:
The internal working of the compare() method can be visualized with the help of below pseudocode:
Java
int intObj1 = ( int )obj1;
int intObj2 = ( int )obj2;
int difference = intObj1 - intObj2;
if (difference == 0 ) {
return 0 ;
}
else if (difference < 0 ) {
return - 1 ;
}
else {
return 1 ;
}
|
Visualizing the compare() method with this approach:
Java
import java.lang.Integer;
class Gfg {
public static int compare(Object obj1, Object obj2)
{
int intObj1 = ( int )obj1;
int intObj2 = ( int )obj2;
int difference = intObj1 - intObj2;
if (difference == 0 ) {
return 0 ;
}
else if (difference < 0 ) {
return - 1 ;
}
else {
return 1 ;
}
}
public static void main(String args[])
{
int a = 10 ;
int b = 20 ;
System.out.println(compare(a, b));
int x = 30 ;
int y = 30 ;
System.out.println(compare(x, y));
int w = 15 ;
int z = 8 ;
System.out.println(compare(w, z));
}
}
|
Various possible implementations of compare() method
public int compare(Object obj1, Object obj2)
{
Integer I1 = (Integer)obj1; // typecasting object type into integer type
Integer I2 = (Integer)obj2; // same as above ..
// 1.
return I1.compareTo(I2); // ascending order [0, 5, 10, 15, 20]
// 2.
return -I1.compareTo(I2); // descending order [20, 15, 10, 5, 0]
// 3.
return I2.compareTo(I1); // descending order [20, 15, 10, 5, 0]
// 4.
return -I2.compareTo(I1); // ascending order [0, 5, 10, 15, 20]
// 5.
return +1; // insertion order [10, 0, 15, 5, 20, 20]
// 6.
return -1; // reverse of insertion order [20, 20, 5, 15, 0, 10]
// 7.
return 0; // only first element [10]
}
Last Updated :
01 Nov, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...