Objekt-Arrays mit Arrays.equals(…) und Arrays.deepEquals(…) vergleichen
Die Arrays.equals(…)-Methode kann auch beliebige Objektfelder vergleichen, doch nutzt sie dann nicht die Identitätsprüfung per ==, sondern die Gleichheit per equals(…). Eine seit Java 9 hinzugekommene Methode fragt einen Comparator.
Beispiel
Enthalten zwei String-Arrays die gleichen Wörter, wobei Groß-/Kleinschreibung keine Rolle spielt?
String[] words1 = { "Zufriedenheit", "übertrifft" , "Reichtum" };
String[] words2 = { "REICHTUM", "übertrifft" , "ZuFRIEDEnheit" };
Arrays.sort( words1, String.CASE_INSENSITIVE_ORDER );
Arrays.sort( words2, String.CASE_INSENSITIVE_ORDER );
System.out.println( Arrays.equals( words1, words2, String.CASE_INSENSITIVE_ORDER ) );
class java.util.Arrays
- staticbooleanequals(
Object[]a,Object[]a2) Vergleicht zwei Arrays mit Objektverweisen. Ein Objekt-Array darf null enthalten; dann gilt für die Gleichheit e1null ? e2null : equals(e2). staticbooleandeepEquals(Object[]a1,Object[]a2) Liefert true, wenn die beiden Arrays ebenso wie alle Unter-Arrays – rekursiv im Fall von Unter-Objekt-Arrays – gleich sind.static <T> boolean equals(T[] a, T[] a2, Comparator<? super T> cmp)Vergleicht zwei Arrays und compare(a[i], b2[i]) muss für alle Pärchen 0 sein, damit beide Elemente als gleich gelten. Neu in Java 9.static <T> boolean equals(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp)Vergleiche Ausschnitte von Arrays mit einem Comparator. Neu in Java 9.