Java Arrays.equals () retorna false para matrizes bidimensionais

Eu estava curioso para saber - por que Arrays.equals (double [] [], double [] []) retorna false? quando de fato as matrizes têm o mesmo número de elementos e cada elemento é o mesmo?

Por exemplo, eu realizei o seguinte teste.

double[][] a,  b;
int size =5;

a=new double[size][size];
b=new double[size][size];

for( int i = 0; i < size; i++ )
    for( int j = 0; j < size; j++ ) {
        a[i][j]=1.0;
        b[i][j]=1.0;
    }

if(Arrays.equals(a, b))
    System.out.println("Equal");
else
    System.out.println("Not-equal");

Retorna false e imprime "Diferente".

por outro lado, se eu tiver algo parecido com isto:

double[] a,  b;
int size =5;

a=new double[size];
b=new double[size];

for( int i = 0; i < size; i++ ){
    a[i]=1.0;
    b[i]=1.0;
} 

if(Arrays.equals(a, b))
    System.out.println("Equal");
else
    System.out.println("Not-equal");

retorna verdadeiro e imprime "igual". O método funciona apenas com dimensões únicas? Nesse caso, existe algo semelhante para matrizes multidimensionais em Java?

questionAnswers(2)

yourAnswerToTheQuestion