Vergleichen Arrays in Java
-
Verwenden Sie den Operator
==
, um Arrays in Java zu vergleichen -
Verwenden Sie die Methode
Arrays.equals()
zum Vergleichen von Arrays in Java -
Verwenden Sie die Methode
Arrays.deepEquals()
zum Vergleichen von Arrays in Java -
Verwenden Sie die
for
-Schleife, um Arrays in Java zu vergleichen
Heute werden wir verschiedene Codeschnipsel schreiben, um Arrays in Java zu vergleichen. Wir werden sehen, wie wir den Operator ==
, Arrays.equals()
, Arrays.deepEquals()
und eine benutzerdefinierte Funktion verwenden können, die eine for
-Schleife enthält, um Arrays in Java zu vergleichen.
Verwenden Sie den Operator ==
, um Arrays in Java zu vergleichen
Beispielcode:
public class compareArrays {
public static void main(String[] args) {
int array1[] = {2, 4, 6};
int array2[] = {2, 4, 6};
if (array1 == array2)
System.out.println("Both arrays are the same");
else
System.out.println("Both arrays are not the same");
}
}
Ausgabe:
Both arrays are not the same
In der Funktion main
haben wir zwei Arrays, array1
und array2
, die sich auf zwei verschiedene Objekte beziehen. Es werden also die beiden unterschiedlichen Referenzvariablen verglichen, was zu Both arrays are not the same
führt.
Verwenden Sie die Methode Arrays.equals()
zum Vergleichen von Arrays in Java
Beispielcode:
import java.util.Arrays;
public class compareArrays {
public static void main(String[] args) {
int array1[] = {2, 4, 6};
int array2[] = {2, 4, 6};
if (Arrays.equals(array1, array2))
System.out.println("Both arrays are the same");
else
System.out.println("Both arrays are not the same");
}
}
Ausgabe:
Both arrays are the same
Diese main
-Methode enthält auch zwei Arrays namens array1
und array2
. Hier verwenden wir die Methode Arrays.equals()
, die sich in Arrays Class befindet und zwei Arrays nimmt und ihren Inhalt vergleicht.
Angenommen, wir haben zwei 2D-Arrays, die wir vergleichen müssen. Können wir den gleichen Ansatz wie oben für einen gründlichen Vergleich nutzen? Nein.
In der Klasse Java Arrays haben wir verschiedene equals()
-Methoden für primitive Typen wie int, char usw. Und eine equals()
-Methode für die Object
-Klasse, aber wir können sie nicht verwenden Führen Sie den tiefen Vergleich für zweidimensionale Arrays durch.
Beispielcode:
import java.util.Arrays;
public class compareArrays {
public static void main(String[] args) {
int innerArray1[] = {2, 4, 6};
int innerArray2[] = {2, 4, 6};
Object outerArray1[] = {innerArray1};
Object outerArray2[] = {innerArray2};
if (Arrays.equals(outerArray1, outerArray2))
System.out.println("Both arrays are the same");
else
System.out.println("Both arrays are not the same");
}
}
Ausgabe:
Both arrays are not the same
Wir können die Methode deepEquals()
für einen tiefen Vergleich verwenden, was hilfreich ist, wenn wir zweidimensionale Arrays haben.
Verwenden Sie die Methode Arrays.deepEquals()
zum Vergleichen von Arrays in Java
Beispielcode:
import java.util.Arrays;
public class compareArrays {
public static void main(String[] args) {
int innerArray1[] = {2, 4, 6};
int innerArray2[] = {2, 4, 6};
Object outerArray1[] = {innerArray1};
Object outerArray2[] = {innerArray2};
if (Arrays.deepEquals(outerArray1, outerArray2))
System.out.println("Both arrays are the same");
else
System.out.println("Both arrays are not the same");
}
}
Ausgabe:
Both arrays are the same
Die Methode deepEquals()
funktioniert gut für einen tiefen Vergleich. Die Methode Arrays.deepEquals()
prüft, ob zwei Arrays gleich sind oder nicht.
Diese beiden Arrays können ein-, zwei- oder sogar mehrdimensional sein.
Wie entscheidet diese Methode, ob die bereitgestellten Arrays gleich sind oder nicht? Dazu müssen Sie folgende Punkte beachten:
- Wenn die Referenzen beider bereitgestellter Arrays null sind, wären die Arrays zutiefst gleich.
- Wir können zwei Array-Referenzen als absolut gleich deklarieren, wenn sie auf die Arrays zeigen, die die genaue Elementnummer und die entsprechenden Elementpaare enthalten.
- Zwei Elemente,
element1
undelement2
, die möglicherweise null sind, wären absolut gleich, wenn eine Bedingung aus der folgenden Liste zutrifft:Arrays.deepEquals(element1, element2)
gibt true zurück, wenn der Typ beider Arrays eine Objektreferenz ist.Arrays.equals(element1, element2)
gibt true zurück, wenn beide Arrays vom exakten primitiven Typ sind.element1 == element2
element1.equals(element2)
gibt true zurück.
Verwenden Sie die for
-Schleife, um Arrays in Java zu vergleichen
Beispielcode:
public class compareArrays {
public static boolean compare(int[] array1, int[] array2) {
boolean flag = true;
if (array1 != null && array2 != null) {
if (array1.length != array2.length)
flag = false;
else
for (int i = 0; i < array2.length; i++) {
if (array2[i] != array1[i]) {
flag = false;
}
}
} else {
flag = false;
}
return flag;
}
public static void main(String[] args) {
int array1[] = {2, 4, 6};
int array2[] = {2, 4, 6};
if (compare(array1, array2))
System.out.println("Both arrays are the same");
else
System.out.println("Both arrays are not the same");
}
}
Ausgabe:
Both arrays are the same
Hier schreiben wir eine compare()
-Funktion, die zwei Arrays in den Typ int bringt. Es vergleicht sie auf Ebene der einzelnen Elemente mit der for
-Schleife und gibt wahr zurück, wenn beide Arrays gleich sind; andernfalls falsch.