Ho cercato un metodo che funzioni come Arrays.equals(a1, a2)
, ma ignorando l'ordine degli elementi. Non sono stato in grado di trovarlo in Google Collections (qualcosa come Iterables.elementsEqual()
, ma questo conta per l'ordine) e JUnit (assertEquals()
ovviamente chiama solo equals()
sulla Collezione, che dipende dall'implementazione della Raccolta, e non è quello che voglio Sarebbe meglio se un tale metodo avrebbe preso Iterable
s, ma sto bene anche semplicemente prendendo Collection
s Tale metodo dovrebbe ovviamente prendere in considerazione eventuali elementi duplicati nella collezione (quindi non può semplicemente testare per containsAll()
).C'è un modo per verificare se due raccolte contengono gli stessi elementi, indipendentemente dall'ordine?
Nota che non sto chiedendo come implementare una cosa del genere, mi stavo solo chiedendo se nessuna delle librerie di collezioni standard ce l'ha.
Nel caso in cui non si voglia utilizzare Apache (o non si può) si può sempre fare: collection1.containsAll (collection2) && collection2.containsAll (collection1) –
@ChrisGonzales, attenzione a questa soluzione - restituirà true per le seguenti due raccolte: collection1 = [1, blah, 1, 4], collezione 2 = [1, blah, blah, 4]. Dove queste due raccolte non sono davvero le stesse. –