代码之家  ›  专栏  ›  技术社区  ›  Muhammad Ahmed AbuTalib

从过滤器rxjava返回容器对象

  •  1
  • Muhammad Ahmed AbuTalib  · 技术社区  · 7 年前

    我有一个列表TeamMember对象:

    class TeamMember {
        List<Sport> sports;
    }
    

    手头的任务是返回具有输入的团队成员。

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

    然而,这将只是返回一个匹配的运动和我原来的团队成员已经失去了。

    思想?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Tuby    7 年前

    再把它放进一个里面 flatMap TeamMember 在拉姆达。

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