/ / Wie man doppelte Arrays vergleicht - Java, Arrays

wie man doppelte Arrays vergleicht - Java, Arrays

Kürzlich dachte ich, du könntest ein Array so duplizieren

System.arraycopy(src,0,dup,0,src.length);

Auch wenn die beiden Arrays identisch sind, wenn Sie sie mit vergleichen

if(src==dup)
...//print true
else if(src!=dup)
...//print false

Es würde immer falsch gedruckt werden. Gibt es überhaupt ein Array zu duplizieren, das sich nicht mit dem ursprünglichen ändert, und diese beiden auch korrekt vergleichen zu können?

Antworten:

1 für die Antwort № 1

Wie amahfouz in seiner Antwort erklärt, werden die Referenzen von zwei verschiedenen Arrays verglichen (in der Art, wie Sie in Ihrem Beitrag geschrieben haben).

Um die Elemente vergleichen zu können, sollten Sie sie also durchlaufen.

Sie können Importieren Sie Java.util.Arraysund tu das:

if(Arrays.equals(src, dup))
System.out.println("Equal");
else
System.out.println("Not Equal");

0 für die Antwort № 2

Der Gleichheitstest vergleicht nur Referenzen, nicht Inhalt, so dass für zwei verschiedene Array-Referenzen immer false zurückgegeben wird.


0 für die Antwort № 3

Sie müssen verwenden

Arrays.equals()