Hey, al momento sto studiando per un java final e sono confuso da un semplice metodo equals
.Come funziona lo stesso metodo di un array?
La domanda dato è
"Dati i seguenti dichiarazioni di matrice, che cosa fa la seguente stampa"
e ho pensato che sarebbe stato vero, falso, vero, però dopo copiando e incollando il il codice rivela che la risposta è falsa, falsa, vera.
Capisco che il ==
funzioni solo quando sono la stessa istanza dell'oggetto ma non capisco perché il primo su è falso. Ho provato a trovare il metodo nell'API dell'array ma non sono riuscito a trovarne uno con gli stessi argomenti.
Perdonami se è ovvio, sono stato alzato fino a tardi nelle ultime notti trascorse a studiare e sono abbastanza stanco di caffeina al momento.
int[] d = { 1, 2, 3 };
int[] b = { 1, 2, 3 };
int[] c = d;
System.out.println(d.equals(b));
System.out.println(d == b);
System.out.println(d == c);
+1 per fornire suggerimenti su come ottenere l'uguaglianza sequenza/valore (e non perché tu sia Jon Skeet). –
E solo per completare il pensiero, ci sono diversi sovraccarichi di 'Arrays.equals', come pure un' Array.deepEquals (Object, Object) ', che può darti un'uguaglianza più" naturale ". – yshavit
L'oggetto ha un metodo uguale ... Sapevo che non potevo pensare, ora lo capisco dopo un pisolino. Grazie mille per avermi aiutato a capire !! – Erik