He estado buscando un método que opere como Arrays.equals(a1, a2)
, pero ignorando el orden de los elementos. No he podido encontrarlo en Google Collections (algo así como Iterables.elementsEqual()
, pero eso explica el pedido) y JUnit (assertEquals()
obviamente solo llama al equals()
en la Colección, que depende de la implementación de la Colección, y eso no es lo que quiero) Sería mejor si tal método tomara Iterable
s, pero también estoy bien con simplemente tomar Collection
s Tal método tomaría en cuenta cualquier elemento duplicado en la colección (por lo que no puede simplemente probar para containsAll()
).¿Hay alguna manera de verificar si dos colecciones contienen los mismos elementos, independientemente de la orden?
Tenga en cuenta que no estoy preguntando cómo implementar tal cosa, solo me preguntaba si alguna de las bibliotecas de Colecciones estándar lo tiene.
En caso de que no desee utilizar Apache (o no puede) siempre puede hacerlo: collection1.containsAll (collection2) && collection2.containsAll (collection1) –
@ChrisGonzales, tenga cuidado con esa solución - se devolverá cierto para las siguientes dos colecciones: colección1 = [1, bla, 1, 4], colección2 = [1, bla, bla, 4]. Donde esas dos colecciones de hecho no son lo mismo. –