¿Por qué estas dos matrices no son iguales?

2023-01-25 04:15:16

public static void main(String[] args) 
{
    char [] d = {'a','b','c','d'};
    char [] e = {'d','c','b','a'};
    Arrays.sort(d);
    Arrays.sort(e);
    System.out.println(e);           //console : abcd
    System.out.println(d);           //console : abcd
    System.out.println(d.equals(e)); //console : false
}

¿Por qué las matrices son desiguales? Probablemente me esté perdiendo algo, pero me está volviendo loco. ¿No se supone que el resultado es cierto? Y sí, he importado java.util.Arrays.

- Nik

Source
zh
Responder


4
  • ¿No se supone que el resultado es verdadero?

    No. Estás llamando a equals en dos referencias de matriz diferentes. Las matrices no anulan equals, por lo tanto, obtiene la igualdad de referencia. Las referencias no son iguales, por lo tanto devuelve false...

    Para comparar los valores de las matrices, utilice Arrays.equals(char[], char[]).

    System.out.println(Arrays.equals(d, e));