Возврат контейнерного объекта из фильтра rxjava - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть список объектов TeamMember:

class TeamMember {
    List<Sport> sports;
}

Задача состоит в том, чтобы вернуть члена команды, у которого есть входные виды спорта.

Я достиг только этого:

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

Однако это только вернуло бы подходящий спорт, и мой первоначальный член команды был потерян.

идей?

1 Ответ

0 голосов
/ 28 декабря 2018

Вложите его внутрь еще одного flatMap, и вы получите доступ к TeamMember в лямбде.

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