Java Array.equals () restituisce false per array bidimensionali

Ero solo curioso di sapere – perché Arrays.equals (double [] [], double [] []) restituisce false? quando in realtà gli array hanno lo stesso numero di elementi e ogni elemento è lo stesso?

Ad esempio ho eseguito il seguente test.

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"); 

Restituisce falso e stampa “Non uguale”.

d’altra parte, se ho qualcosa di simile:

 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"); 

ritorna vero e stampa “Uguale”. Il metodo funziona solo con dimensioni singole? se è così, c’è qualcosa di simile per gli array multidimensionali in Java?