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.
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);
String password1;
String password2;
String msg;
System.out.println("Enter password: ");
password1 = keyboard.nextLine();
System.out.println("Repeat password: ");
password2 = keyboard.nextLine();
if (password1.equals(password2)) {
msg = "Password matching!";
} else {
msg = "Password not match";
}
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;
}
@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (!(o instanceof Complex)) {
return false;
}
Complex c = (Complex) o;
return Double.compare(re, c.re) == 0
&& Double.compare(im, c.im) == 0;
}
}
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 ");
}
}
}