Ich habe nach einer Methode gesucht, die wie funktioniert Arrays.equals(a1, a2)
, aber die Elementreihenfolge ignoriert. Ich konnte es weder in Google Collections (so etwas wie Iterables.elementsEqual()
, aber das macht die Bestellung aus) noch in JUnit finden ( assertEquals()
offensichtlich wird nur equals()
die Collection aufgerufen, was von der Collection-Implementierung abhängt, und das ist nicht das, was ich will) Am besten wäre es, wenn eine solche Methode Iterable
s benötigt, aber ich kann auch einfach Collection
s nehmen. Eine solche Methode würde natürlich alle doppelten Elemente in der Sammlung berücksichtigen (daher kann sie nicht einfach getestet werden containsAll()
).
Beachten Sie, dass ich nicht frage, wie so etwas implementiert werden soll. Ich habe mich nur gefragt, ob eine der Standard-Sammlungsbibliotheken dies hat.
Apache Commons-Sammlungen hat CollectionUtils # isEqualCollection :
Gibt true zurück, wenn die angegebenen Sammlungen genau dieselben Elemente mit genau derselben Kardinalität enthalten.
Das heißt, wenn die Kardinalität von e in a gleich der Kardinalität von e in b ist, für jedes Element e in a oder b.
Welches ist, denke ich, genau das, wonach Sie suchen.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen