CollectionUtils::removeAll() Commons Collections 3.2.1Java Commons Colecciones removeAll
Me estoy volviendo loco, becuase parece que este método está haciendo lo contrario de lo que el estado docs:
Removes the elements in remove from collection. That is, this method returns a collection containing all the elements in c that are not in remove.
Este pequeño JUnit prueba
@Test
public void testCommonsRemoveAll() throws Exception {
String str1 = "foo";
String str2 = "bar";
String str3 = "qux";
List<String> collection = Arrays.asList(str1, str2, str3);
System.out.println("collection: " + collection);
List<String> remove = Arrays.asList(str1);
System.out.println("remove: " + remove);
Collection result = CollectionUtils.removeAll(collection, remove);
System.out.println("result: " + result);
assertEquals(2, result.size());
}
Está fallando con
java.lang.AssertionError: expected:<2> but was:<1>
y grabados
collection: [foo, bar, qux]
remove: [foo]
result: [foo]
De mi lectura de los documentos debo esperar [bar, qux]
. ¿Qué me he perdido?
Actualicé mi publicación para reflejar esto porque alguien me lo recordó, pero Apache Commons Collections 4.0 fue lanzado en noviembre de 2013, con una solución para este problema. – birryree