Je cherchais une méthode qui fonctionne comme Arrays.equals(a1, a2)
, mais en ignorant l'ordre des éléments. Je n'ai pas pu le trouver dans Google Collections (quelque chose comme Iterables.elementsEqual()
, mais cela compte pour la commande) et JUnit (assertEquals()
appelle évidemment equals()
sur la collection, qui dépend de l'implémentation de la collection, et ce n'est pas ce que je veux Il serait préférable qu'une telle méthode prenne Iterable
s, mais je prends aussi simplement Collection
s Une telle méthode prendrait bien sûr en compte tous les éléments dupliqués dans la collection (donc elle ne peut pas simplement tester pour containsAll()
).Y at-il un moyen de vérifier si deux collections contiennent les mêmes éléments, indépendamment de l'ordre?
Notez que je ne demande pas comment implémenter une telle chose, je me demandais juste si l'une des bibliothèques Collections standard l'avait.
Si vous ne voulez pas utiliser Apache (ou vous ne pouvez pas) vous pouvez toujours faire: collection1.containsAll (collection2) && collection2.containsAll (collection1) –
@ChrisGonzales, méfiez-vous de cette solution - il retournera vrai pour les deux collections suivantes: collection1 = [1, blah, 1, 4], collection2 = [1, bla, bla, 4]. Où ces deux collections ne sont en effet pas les mêmes. –