What is the difference between equals and compareTo in Java?

Java 8Object Oriented ProgrammingProgramming

The compareTo() method compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string.

  • The result is a negative integer if this String object lexicographically precedes the argument string.
  •  The result is a positive integer if this String object lexicographically follows the argument string.
  •  The result is zero if the strings are equal, compareTo returns 0 exactly when the equals(Object) method would return true.


Live Demo

public class StringDemo {
   public static void main(String[] args) {
      String str1 = "tutorials", str2 = "point";

      // comparing str1 and str2
      int retval = str1.compareTo(str2);

      // prints the return value of the comparison
      if (retval < 0) {
         System.out.println("str1 is greater than str2");
      } else if (retval == 0) {
         System.out.println("str1 is equal to str2");
      } else {
         System.out.println("str1 is less than str2");


str1 is less than str2
Updated on 18-Jun-2020 07:22:14