Way2Java

Compare arrays equality equals()

Arrays.equals() method compares two arrays and tests whether they have the same elements are not. Returns a boolean value of true if they come with the same elements else false. Here, both arrays should have the same elements in the same order. If the order changes, the method returns false (even though they contain same elements).

Following is the method signature

Example on Compare arrays equality equals() uses the above method.
import java.util.Arrays;
public class ArraysEquals
{
  public static void main(String[] args) 
  {
    String stones1[] = { "diamond", "ruby", "emerald" };
    String stones2[] = { "diamond", "ruby", "emerald" };
    String stones3[] = { "diamond", "emerald", "ruby" };

    System.out.println("stones1 elements: " + Arrays.toString(stones1));
    System.out.println("stones2 elements: " + Arrays.toString(stones2));
    System.out.println("stones3 elements: " + Arrays.toString(stones3));

    System.out.println("\nstones1 and stones2 contain same elements: " + Arrays.equals(stones1, stones2));
    System.out.println("stones1 and stones3 contain same elements: " + Arrays.equals(stones1, stones3));

    if(Arrays.equals(stones1, stones2))
        System.out.println("stones1 and stones2 have same elements.");
  }
}



Output screen of Compare arrays equality equals()

String stones1[] = { “diamond”, “ruby”, “emerald” };
String stones2[] = { “diamond”, “ruby”, “emerald” };
String stones3[] = { “diamond”, “emerald”, “ruby” };

Three string array objects stones1, stones2 and stones3 are created with elements "diamond", "ruby" and "emerald". All the three arrays have the same elements but stones3 have a different order.

System.out.println(“stones1 elements: ” + Arrays.toString(stones1));

With toString() method of Arrays all the elements are printed. We know earlier toString() method avoids tedious for loops writing.

System.out.println(“\nstones1 and stones2 contain same elements: ” + Arrays.equals(stones1, stones2));

Arrays.equals(stones1, stones2) method compares the arrays stones1 and stones2. As they contain the same elements in the same order, the method returns true.

Arrays.equals(stones1, stones3) returns false as stones1 and stones3 contain same elements but in a different order.

if(Arrays.equals(stones1, stones2))

As equals() method returns a boolean value, it is best suitable to use with control structures as in the above code.

It looks similar to disjoint() method of Collections explained with ArrayList elements.