CollectionUtils :: removeAll()Commons Collections 3.2.1
このメソッドはドキュメントの状態とは逆のことをしているように見えるので、私は夢中になっているに違いありません。
コレクションからremoveの要素を削除します。つまり、このメソッドは、removeに含まれていないcのすべての要素を含むコレクションを返します。
この小さな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());
}
で失敗しています
java.lang.AssertionError:期待される:<2>があった:<1>
とプリント
collection: [foo, bar, qux]
remove: [foo]
result: [foo]
ドキュメントを読んだことから、私は期待する必要があり[bar, qux]
ます。私は何を逃しましたか?