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?