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 e1==null ? e2==null : 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.