Java.util.Arrays.equals() in Java with Examples – GeeksforGeeks

Today we are going to discuss the simplest way to check whether two arrays are equal or not. Two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal. In other words, two arrays are equal if they contain the same elements in the same order. Also, two array references are considered equal if both are null. Arrays class in java provide the method Arrays.equals() to check whether two arrays are equal or not.

Syntax :
public static boolean equals(int[] a, int[] a2)
Parameters :
a - one array to be tested for equality
a2 - the other array to be tested for equality
Returns : 
true if the two arrays are equal

Other Variants:

  • public static boolean equals(byte[] a, byte[] a2)
  • public static boolean equals(short[] a, short[] a2)
  • public static boolean equals(long[] a, long[] a2)
  • public static boolean equals(float[] a, float[] a2)
  • public static boolean equals(double[] a, double[] a2)
  • public static boolean equals(char[] a, char[] a2)
  • public static boolean equals(boolean[] a, boolean[] a2)
  • public static boolean equals(Object[] a, Object[] a2)

Tóm Tắt

Java




 

import java.util.Arrays;

 

public class ArrayEqualDemo

{

    public static void main(String[] args)

    {

        

        int[] arr1 = new int [] {1, 2, 3, 4};

        int[] arr2 = new int [] {1, 2, 3, 4};

        int[] arr3 = new int [] {1, 2, 4, 3};

         

        System.out.println("is arr1 equals to arr2 : " +

                                Arrays.equals(arr1, arr2));

        System.out.println("is arr1 equals to arr3 : " +

                                Arrays.equals(arr1, arr3));

    }

}



Output:

is arr1 equals to arr2 : true
is arr1 equals to arr3 : false

We can also use Arrays.equals() for checking equality of array of objects of user defined class.Have a look at last variant of the Arrays.equals() method 

Note :- In case of arrays of Objects, you must override equals method to provide your own definition of equality, otherwise you will get output depends on what equals() method of Object class returns. In the program below, we are checking equality of rollno, name, and address for a student. 

Java




 

import java.util.Arrays;

 

 

public class ArrayEqualDemo

{

    public static void main (String[] args)

    {

        Student [] arr1 = {new Student(111, "bbbb", "london"),

                        new Student(131, "aaaa", "nyc"),

                        new Student(121, "cccc", "jaipur")};

         

        Student [] arr2 = {new Student(111, "bbbb", "london"),

                        new Student(131, "aaaa", "nyc"),

                        new Student(121, "cccc", "jaipur")};

         

        Student [] arr3 = {new Student(111, "bbbb", "london"),

                        new Student(121, "dddd", "jaipur"),

                        new Student(131, "aaaa", "nyc"),

                        };

         

        System.out.println("is arr1 equals to arr2 : " +

                                    Arrays.equals(arr1, arr2));

        System.out.println("is arr1 equals to arr3 : " +

                                    Arrays.equals(arr1, arr3));   

    }   

}

 

class Student

{

    int rollno;

    String name, address;

 

    

    public Student(int rollno, String name,

                            String address)

    {

        this.rollno = rollno;

        this.name = name;

        this.address = address;

    }

     

    @Override

    public boolean equals(Object obj) {

         

        

        Student s = (Student) obj;

         

        return this.rollno == s.rollno && this.name.equals(s.name)

                                && this.address.equals(s.address);

    }

}



Output:

is arr1 equals to arr2 : true
is arr1 equals to arr3 : false

Note:  String.equals() can be only performed to 1-D arrays and hence it doesn’t work for multidimensional arrays. Use Arrays.deepEquals(Object[], Object[]) instead , it returns true if the two specified arrays are deeply equal to each other.

Java




import java.util.Arrays;

 

public class ArrayEqualDemo_2 {

    public static void main(String[] args)

    {

        

        int[][] arr1 = { { 0, 1 }, { 1, 0 } };

        int[][] arr2 = { { 0, 1 }, { 1, 0 } };

 

        System.out.println("is arr1 equals to arr2 : "

                           + Arrays.equals(arr1, arr2));

        System.out.println("is arr1 deepequals to arr2 : "

                           + Arrays.deepEquals(arr1, arr2));

    }

}



Output:

is arr1 equals to arr2 : false
is arr1 deepequals to arr2 : true

This article is contributed by Gaurav Miglani. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to [email protected]. See your article appearing on the GeeksforGeeks main page and help other Geeks. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes

arrow_drop_up