Google馆藏(番石榴库):ImmutableSet / List / Map和Filtering

|| 假设您要构建
ImmutableSet
/
List
/
Map
对象的副本,但要过滤掉一些原始条目。一种实现方式如下:
ImmutableList.copyOf(Iterables.filter(myObject, myObject.EQUALS));
其中
myObject.EQUALS
Iterables.filter()
运算的谓词。我认为这是一个非常优雅且易于阅读的实现。但是,一个人建立两个列表对象(第一个到
Iterables.filter(...)
调用,第二个到
ImmutableList.copyOf(...)
),效率很低。 有人知道有更有效的方法吗? 我猜最好的办法是将过滤谓词添加到
ImmutableSet
/
List
/
Map
生成器中,以便对象只能被构造一次。但不幸的是,没有这样的参数。     
已邀请:
        
Iterables.filter()
的结果只是
myObject
中数据的视图:新列表仅由
ImmutableList.copyOf()
使用
Iterable
提供的过滤迭代器构建。     
        看番石榴的迭代器 专门过滤器(未过滤迭代器,谓词谓词)     

要回复问题请先登录注册