从过滤器rxjava

时间:2018-12-28 16:25:20

标签: android rx-java2

我有一个列表TeamMember对象:

class TeamMember {
    List<Sport> sports;
}

当前的任务是让具有投入运动的团队成员返回。

我已经做到了:

Observable.fromIterable(getTeamMembers())
    .flatMapIterable(teamMember -> teamMember.getSports())
    .filter(sport -> sport.equals(selectedSport))

但是这只是一项匹配的运动,而我的原始团队成员已经丢失。

想法?

1 个答案:

答案 0 :(得分:1)

再将其嵌套在flatMap中,您将可以访问lambda中的TeamMember

Observable.fromIterable(getTeamMembers())
        .flatMap(teamMember -> Observable.fromIterable(teamMember.getSports())
                .filter(sport -> sport.equals(selectedSport))
                .map(sportMatchingSelectedSport -> new TeamMemberWithSport(teamMember, sportMatchingSelectedSport)))