我有一个ArrayList
过滤后,还有各种番石榴Predicate
s 来过滤它。该列表只有 50-100 个元素。
我本来打算Iterables.removeIf
依次使用每个谓词。它可能不是最大效率,但没关系(至少removeIf
对随机访问列表进行了一些优化)
为了调试,我想简洁地记录每个谓词所做的事情。例如
Pred0 removed [a, c, g]
Pred1 removed []
Pred2 removed [b, f]
有一些明显的黑客解决方案,但您建议最干净的解决方案是什么?
对于奖励积分来说,它也应该相当有效。 ;)
我会捕获谓词代码中删除的元素。
List<String> removedElements = Lists.newArrayList();
final Iterables.removeIf(list, new Predicate<String>() {
@Override
public boolean apply(String input) {
if ("a".equals(input)) {
removedElements.add(input);
return true;
}
return false;
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)