CollectionUtilsのバグが見つかりました
public static void main(String[] args) {
Collection<String> collection = new ArrayList<String>();
Collection<String> remove = new ArrayList<String>();
Collection<String> retain = new ArrayList<String>();
collection.add(new String("A"));
collection.add(new String("B"));
collection.add(new String("C"));
collection.add(new String("D"));
remove.add(new String("A"));
remove.add(new String("B"));
remove.add(new String("C"));
retain.add(new String("A"));
retain.add(new String("D"));
retain.add(new String("E"));
Collection<String> result = (Collection<String>)CollectionUtils.removeAll(collection, remove);
System.out.println(result.size());
for (String string : result) {
System.out.print(string);
System.out.print(",");
}
System.out.println();
result = (Collection<String>)CollectionUtils.retainAll(collection, retain);
System.out.println(result.size());
for (String string : result) {
System.out.print(string);
System.out.print(",");
}
}
出力結果:
3
A,B,C,
2
A,D,
実際にremoveAllは文字列Dを含むCollectionを返すべきです.ここではCollectionUtilsのバグです.
——————————————————————————————————————————————————