我喜欢使用 Guava 的 Iterables 过滤器。但是一个常见的代码片段如下所示:
List foo = Lists.newArrayList(Iterables.filter(someCollection, somePredicate));
if (foo.isEmpty) {
// do empty
} else {
int count = foo.size(); // do non-empty
}
这很浪费,因为我真的不需要构建“foo”列表,我只需要知道它是否为空并计算元素的数量。
我想知道以下方面的最佳实践:
1)如何在isEmpty()
不浪费时间将列表构建到内存中的情况下进行测试
2)有没有办法在不遍历所有条目的情况下获得大小?
3)如果没有#2的非迭代解决方案,只迭代并做count ++会更好吗?