【发布时间】:2012-01-17 12:33:09
【问题描述】:
有什么原因吗
Lists.transform()
但没有
Lists.filter()
?
如何正确过滤列表?我可以使用
new ArrayList(Collection2.filter())
当然可以,但是如果我理解正确,这样就不能保证我的订单保持不变。
【问题讨论】:
-
仅供参考,List.newArrayList(Iterables.filter(...)) 通常比 new ArrayList(Collection2.filter(...)) 快。 ArrayList 构造函数在过滤后的集合上调用 size(),计算大小需要将过滤器应用于原始列表的每个元素。
-
@JaredLevy 也许应该说
List.newArrayList(Iterables.filter(...))而不是Lists.newArrayList(Iterables.filter(...))。