equals vs Arrays.equals in Java

PandaConda picture PandaConda · Jan 8, 2012 · Viewed 175.8k times · Source

When comparing arrays in Java, are there any differences between the following 2 statements?

Object[] array1, array2;
array1.equals(array2);
Arrays.equals(array1, array2);

And if so, what are they?

Answer

Peter Lawrey picture Peter Lawrey · Jan 8, 2012

array1.equals(array2) is the same as array1 == array2, i.e. is it the same array. As @alf points out it's not what most people expect.

Arrays.equals(array1, array2) compares the contents of the arrays.


Similarly array.toString() may not be very useful and you need to use Arrays.toString(array).