Data structures 使用Guava库从数组列表获取未筛选项

Data structures 使用Guava库从数组列表获取未筛选项,data-structures,collections,guava,Data Structures,Collections,Guava,我可以使用下面的函数根据我的过滤条件获取所有项目,但我还需要未过滤的项目列表,我的意思是说isGroup为true的项目我可以轻松获取,但无法获取isGroup为true的项目,我不想为同一任务使用其他过滤器,是否有任何内置函数 final Collection nonGroupItems= Collections2.filter(rosterList, new Predicate<Roster>() { @Override pub

我可以使用下面的函数根据我的过滤条件获取所有项目,但我还需要未过滤的项目列表,我的意思是说isGroup为true的项目我可以轻松获取,但无法获取isGroup为true的项目,我不想为同一任务使用其他过滤器,是否有任何内置函数

  final Collection nonGroupItems= Collections2.filter(rosterList, new Predicate<Roster>() {
            @Override
            public boolean apply(Roster input) {
                return  ! input.getIsGroup();
            }
        });
final Collection nonGroupItems=Collections2.filter(名册列表,新谓词(){
@凌驾
公共布尔应用(花名册输入){
return!input.getIsGroup();
}
});
是。您可以使用某个键(在本例中是通过
isGroup
)对值进行索引/分组/分区。然后,您可以访问每个值列表:一个列表用于
isGroup
返回
true
的值,另一个列表用于
isGroup
返回
false
的值

e、 g:

final ImmutableListMultimap rostersByIsGroup=Multimaps.index(名册列表,
新函数(){
@凌驾
公共布尔应用(花名册输入){
返回input.getIsGroup();
}
});
final-ImmutableList-groupItems=rostersByIsGroup.get(true);
final ImmutableList nonGroupItems=rostersByIsGroup.get(false);
如果您使用Java 8:

final ImmutableListMultimap rostersByIsGroup=Multimaps.index(名册列表,
名册:getIsGroup);
final-ImmutableList-groupItems=rostersByIsGroup.get(true);
final ImmutableList nonGroupItems=rostersByIsGroup.get(false);