Thursday, September 4, 2025
HomeLanguagesJavaHow compare() method works in Java

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




// Java program to demonstrate working
// of compare() method using Integer Class
 
import java.lang.Integer;
 
class Gfg {
 
    // driver code
    public static void main(String args[])
    {
        int a = 10;
        int b = 20;
 
        // as 10 less than 20,
        // Output will be a value less than zero
        System.out.println(Integer.compare(a, b));
 
        int x = 30;
        int y = 30;
 
        // as 30 equals 30,
        // Output will be zero
        System.out.println(Integer.compare(x, y));
 
        int w = 15;
        int z = 8;
 
        // as 15 is greater than 8,
        // Output will be a value greater than zero
        System.out.println(Integer.compare(w, z));
    }
}


Output: 

-1
0
1

 

How is the return value evaluated:

The internal working of the compare() method can be visualized with the help of below pseudocode:

Java




// Converting the two objects to integer
// for comparison
int intObj1 = (int)obj1;
int intObj2 = (int)obj2;
 
// Get the difference
int difference = intObj1 - intObj2;
 
if (difference == 0) {
 
    // Both are equal
    return 0;
}
else if (difference < 0) {
 
    // obj1 < obj2
    return -1;
}
else {
 
    // obj1 > obj2
    return 1;
}


Visualizing the compare() method with this approach:

Java




// Java program to demonstrate working
// of compare() method
 
import java.lang.Integer;
 
class Gfg {
 
    // Function to compare both objects
    public static int compare(Object obj1, Object obj2)
    {
 
        // Converting the two objects to integer
        // for comparison
        int intObj1 = (int)obj1;
        int intObj2 = (int)obj2;
 
        // Get the difference
        int difference = intObj1 - intObj2;
 
        if (difference == 0) {
 
            // Both are equal
            return 0;
        }
        else if (difference < 0) {
 
            // obj1 < obj2
            return -1;
        }
        else {
 
            // obj1 > obj2
            return 1;
        }
    }
 
    // driver code
    public static void main(String args[])
    {
        int a = 10;
        int b = 20;
 
        // as 10 less than 20,
        // Output will be a value less than zero
        System.out.println(compare(a, b));
 
        int x = 30;
        int y = 30;
 
        // as 30 equals 30,
        // Output will be zero
        System.out.println(compare(x, y));
 
        int w = 15;
        int z = 8;
 
        // as 15 is greater than 8,
        // Output will be a value greater than zero
        System.out.println(compare(w, z));
    }
}


Output: 

-1
0
1

 

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]
}
Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32261 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6626 POSTS0 COMMENTS
Nicole Veronica
11795 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11855 POSTS0 COMMENTS
Shaida Kate Naidoo
6747 POSTS0 COMMENTS
Ted Musemwa
7023 POSTS0 COMMENTS
Thapelo Manthata
6695 POSTS0 COMMENTS
Umr Jansen
6714 POSTS0 COMMENTS