Java Zwei verschiedene String-Arrays: Prüfen, ob beide Arrays die gleichen Inhalte haben

Die Aufgabe ist leider nicht ganz eindeutig formuliert.

Mögliche Lösung mit Collections API:
Code:
public static Boolean listsAreEqual(final Collection<String> list1, final Collection<String> list2)
{
     Collection<String> similar = new HashSet<String>(list1);
     // get items present in both lists
     similar.retainAll(list2);
     // all lists need to have the same size
     if(similar.size() != list1.size() || similar.size() != list2.size()) {
         return false;
     }
     return true;
}

MWE: http://hastebin.com/ejasegeber.java
 
Kurz und knackig ohne irgendwelche Listen oder Hashmaps zu verwenden.

Code:
public boolean arraysAreEqual(String[] arrayA, String[] arrayB) {
    Arrays.sort(arrayA);
    Arrays.sort(arrayB);
    return Arrays.equals(arrayA, arrayB);
}
 
Andreas_L schrieb:
Kurz und knackig ohne irgendwelche Listen oder Hashmaps zu verwenden.

Code:
public boolean arraysAreEqual(String[] arrayA, String[] arrayB) {
    Arrays.sort(arrayA);
    Arrays.sort(arrayB);
    return Arrays.equals(arrayA, arrayB);
}

Dadurch veränderst Du aber die Ausgangsarrays! Das will man in den meisten Fällen wohl nicht.
 
@Andreas_L:
Dann macht man sich eben zwei Kopien des Objekts und vergleicht diese miteinander. Somit weiß man zumindest, dass beide inhaltlich identisch sind, ohne diese manipulieren zu müssen.
 
Zurück
Oben