java equals method code example

Example 1: java == vs equals

In general both equals() and == operator in Java are used to compare 
objects to check equality but here are some of the differences between the two:

1) .equals() and == is that one is a method and other is operator.
2) We can use == operator for reference comparison (address comparison) 
and .equals() method for content comparison. 
 -> == checks if both objects point to the same memory location 
 -> .equals() evaluates to the comparison of values in the objects.
3) If a class does not override the equals method, then by default it 
uses equals(Object o) method of the closest parent class 
that has overridden this method.

// Java program to understand  
// the concept of == operator 
public class Test { 
    public static void main(String[] args) 
    { 
        String s1 = new String("HELLO"); 
        String s2 = new String("HELLO"); 
        System.out.println(s1 == s2); 
        System.out.println(s1.equals(s2)); 
    } 
} 
Output:
false
true
  
Explanation: Here we are creating two (String) objects namely s1 and s2.
Both s1 and s2 refers to different objects.
 -> When we use == operator for s1 and s2 comparison then the result is false 
 as both have different addresses in memory.
 -> Using equals, the result is true because its only comparing the 
 values given in s1 and s2.

Example 2: equals example java

import java.util.Scanner;

public class YourProjectName {

	public static void main(String[] args) {
		Scanner keyboard = new Scanner(System.in);
		
		//D
		
		String password1;
		String password2;
		String msg;
		
		//E
		
		System.out.println("Enter password: ");
			password1 = keyboard.nextLine();
		
		System.out.println("Repeat password: ");
			password2 = keyboard.nextLine();
		
		//P
		
		if (password1.equals(password2)) {
			msg = "Password matching!";
		} else {
			msg = "Password not match";
		}
		
		//S
		
		System.out.println(msg);
		
	}

}

Example 3: override equals java

class Complex { 

	private double re, im; 

	public Complex(double re, double im) { 
		this.re = re; 
		this.im = im; 
	} 

	// Overriding equals() to compare two Complex objects 
	@Override
	public boolean equals(Object o) { 

		// If the object is compared with itself then return true 
		if (o == this) { 
			return true; 
		} 

		/* Check if o is an instance of Complex or not 
		"null instanceof [type]" also returns false */
		if (!(o instanceof Complex)) { 
			return false; 
		} 
		
		// typecast o to Complex so that we can compare data members 
		Complex c = (Complex) o; 
		
		// Compare the data members and return accordingly 
		return Double.compare(re, c.re) == 0
				&& Double.compare(im, c.im) == 0; 
	} 
} 

// Driver class to test the Complex class 
public class Main { 

	public static void main(String[] args) { 
		Complex c1 = new Complex(10, 15); 
		Complex c2 = new Complex(10, 15); 
		if (c1.equals(c2)) { 
			System.out.println("Equal "); 
		} else { 
			System.out.println("Not Equal "); 
		} 
	} 
}