给定Single
Set
字符串值
Single<Set<String>> sss = Single.just(Sets.newHashSet("1" , "2", "3"));
我想将此转换为应包含转换为Integers的元素的Single<Set<Integer>>
。假设从String到Integer的转换非常昂贵,并且每个元素都应该并行转换。怎么做到这一点?
我尝试将其转换为Observable
,但无法将其合并回Single
:
Single<Set<Integer>> ssi = sss.toObservable()
.flatMapIterable(e -> e)
.map(Integer::parseInt)
.join()//??
答案 0 :(得分:0)
使用并行扩展名:
Single<Set<String>> sss = Single.just(Sets.newHashSet("1" , "2", "3"));
Single<Set<Integer>> ssi = sss
.flattenAsFlowable(e -> e)
.parallel()
.runOn(Schedulers.computation())
.map(Integer::parseInt)
.sequential()
.toList(HashSet::new);