// Java program to demonstrate working of
// Arrays.deepEquals()
// with arrays of user-defined objects
import java.util.Arrays;
public class ArraysDeepEquals2 {
public static class Employee {
int i;
String n;
public Employee(int i, String n) {
this.i = i;
this.n = n;
}
// Override equals() to define equality
// based on id and name
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Employee e = (Employee) o;
return i == e.i && n.equals(e.n);
}
}
public static void main(String[] args) {
Employee e1[][] = { { new Employee(10, "Geek1"),
new Employee(11, "Geek2") },
{ new Employee(12, "Geek3"),
new Employee(13, "Geek4") } };
Employee e2[][] = { { new Employee(10, "Geek1"),
new Employee(11, "Geek2") },
{ new Employee(12, "Geek3"),
new Employee(13, "Geek4") } };
Employee e3[][] = { { new Employee(12, "Geek2"),
new Employee(25, "Geek4") },
{ new Employee(15, "Geek3"),
new Employee(30, "Geek1") } };
// Check if e1 and e2 are equal
System.out.println("e1 is equal to e2: " + Arrays.deepEquals(e1, e2));
// Check if e2 and e3 are equal
System.out.println("e2 is equal to e3: " + Arrays.deepEquals(e2, e3));
// Check if e1 and e3 are equal
System.out.println("e1 is equal to e3: " + Arrays.deepEquals(e1, e3));
}
}