oleções @Java Commons removeAll
CollectionUtils :: removeAll () Commons Commons 3.2.1
Devo estar ficando louco, porque parece que esse método está fazendo o inverso do que os documentos afirmam:
Remove os elementos em remover da coleção. Ou seja, esse método retorna uma coleção contendo todos os elementos em c que não estão em remoção.
Este pequeno teste JUnit
@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á falhando com
java.lang.AssertionError: esperado: <2> mas foi: <1>
e impressões
collection: [foo, bar, qux]
remove: [foo]
result: [foo]
De minha leitura dos documentos que devo esperar[bar, qux]
. O que eu perdi?