RxJava:返回内部嵌套循环的结果



我正在尝试使用RxJava对2个数组进行迭代,并在内部循环中累积结果,最终返回Single<Map>

以下是我试图实现的一个片段:

private Map<String, Collection<String>> processData(List<Organization> organizations, List<User> users) {
return Flowable.fromIterable(organizations) //
.flatMapSingle(organization-> Flowable.fromIterable(users) //
.filter(organization -> organization.exist(user)) //
.toMultimap(organization, user))
.blockingSingle();
}

我不喜欢blockSingle呼叫,有更好的方法来处理这种情况吗?

编辑

按照建议,我去掉了RxJava,使用Java8流,如下所示:

organizations.streams() //
.map(organization-> users.stream()
.filter(organization -> organization.exist(user))
.collect(MultimapCollector.toMultimap(user::role, user::id)));

我不明白的是,如何最终得到Multimap<String,String>的结果,目前它返回为Stream<Object>

为什么首先要使用RxJava执行此任务?不涉及异步性,所以只需使用Java 8中的.filter()/.map()/.flatMap()(https://www.mkyong.com/java8/java-8-filter-a-map-examples/)。

最新更新