/ / Por que essas duas matrizes não são iguais? [duplicado] - java, matrizes, iguais

Por que essas duas matrizes não são iguais? [duplicado] - java, matrizes, iguais

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 que as matrizes são desiguais? Provavelmente estou perdendo alguma coisa, mas isso está me deixando louco. O resultado não deveria ser verdadeiro? E sim, eu importei o java.util.Arrays.

Respostas:

15 para resposta № 1

O resultado não deveria ser verdadeiro?

Não. Você está ligando equals em duas referências de matriz diferentes. Matrizes não substituem equals, portanto, você obtém igualdade de referência. As referências não são iguais, portanto retorna falso ...

Para comparar os valores nas matrizes, use Arrays.equals(char[], char[]).

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

11 para resposta № 2

Matrizes fazem não sobrepor Object#equals(). Usar:

Arrays.equals(d, e);

em vez disso, para executar uma comparação baseada em valor.

Contudo:

Arrays.equals faz não trabalhar conforme o esperado para matrizes multidimensionais. Ele comparará as referências do primeiro nível de matrizes em vez de comparar todos os níveis. Referir-se este comentárioou use Arrays.deepEquals da mesma maneira.