Open In App

How compare() method works in Java

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

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]
}

Article Tags :
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy