可以说我有一个可观察的 Observable<List<A>>
,我想将它转换为一个Observable作为Observable<List<B>>
。有没有什么最好的办法可以将List<A>
转换成List<B>
。 Javascript的map
的实现将是理想的情况。将一种类型的列表转换为另一种类型的RXJava? (等效的Javascript地图)
5
A
回答
4
您可以使用Observable.from(Iterable<A>)
得到Observable<A>
,它映射(A => B),并将其转换为List<B>
与Observable.toList()
Observable.from(Arrays.asList(1, 2, 3))
.map(val -> mapIntToString(val)).toList()
例如
Observable.from(Arrays.asList(1, 2, 3))
.map(val -> val + "mapped").toList()
.toBlocking().subscribe(System.out::println);
产生
[1mapped,2mapped,3mapped]
0
您还可以使用组成将获得可观察到的,将返回不同的。
Observable.Transformer<Integer, String> transformIntegerToString() {
return observable -> observable.map(String::valueOf);
}
@Test
public void observableWithTransformToString() {
Observable.from(Arrays.asList(1,2,3))
.map(number -> {
System.out.println("Item is Integer:" + Integer.class.isInstance(number));
return number;
})
.compose(transformIntegerToString())
.subscribe(number -> System.out.println("Item is String:" + (String.class.isInstance(number))));
}
您可以在这里看到更多的例子
2
我回答了另一个类似的问题在这里:https://stackoverflow.com/a/42055221/454449
我在这里复制的答案为方便(不知道这违背规则):
如果要维护源01发出的但转换的内容,即Observable<List<SourceObject>>
到Observable<List<ResultsObject>>
,你可以做这样的事情:
Observable<List<SourceObject>> source = ...
source.flatMap(list ->
Observable.fromIterable(list)
.map(item -> new ResultsObject(item))
.toList()
.toObservable() // Required for RxJava 2.x
)
.subscribe(resultsList -> ...);
这确保了两件事情:
- 维持由
Observable
发出Lists
数。即,如果源发射3所列出,会有在另一端 - 使用
Observable.fromIterable()
将确保内Observable
3名转化列表终止,使得toList()
可用于
相关问题
- 1. 转换为另一种类型的
- 2. 将一种类型的列表转换为C#3.5中另一种类型的列表
- 3. AS3将一种类型转换为另一种
- 4. 将一种类型的列表转换为使用推土机的另一种类型的数组
- 5. 如何将属性从一种类型转换为另一种?
- 6. 如何使用反射将一种类型转换为另一种类型?
- 7. 如何将一种数据类型转换为另一种数据类型?
- 8. 如何将表列转换为另一种数据类型
- 9. 从一个空类型转换为另一种可空类型
- 10. 如何轻松将一种类型的列表复制到另一种类型?
- 11. 使一种类型成为一种类型或另一种类型
- 12. 类型不匹配无法一种类型转换为另一种
- 13. 将一种类型的映射列表映射到另一种
- 14. 从表达式的值转换为另一种类型的C#
- 15. 我该如何隐式地将我的类转换为另一种类型?
- 16. 将电感值转换为另一种类型的电感值
- 17. 如何将一种类型转换为与包名相同的多种类型?
- 18. 将一种类型的树结构转换为另一种类型的设计模式?
- 19. 通用如何将一种类型的数据转换为另一种类型的数据
- 20. 将scala集合从一种类型转换为另一种类型的复杂性是什么?
- 21. 将数据从一种类型转换为另一种类型的“正确”方式是什么?
- 22. 如何从EA中的另一种类型生成某种类型的图表?
- 23. 转换的实例为另一种类型的实例
- 24. 将数据从一种类型转换为另一种类型存在哪些模式?
- 25. 如何将通用数组转换为另一种类型?
- 26. 将一种类型的矢量分配给另一种类型的矢量
- 27. PowerPoint图表。与另一种类型
- 28. 继承类的另一种类型的
- 29. RavenDB:将文档属性转换为另一种类型
- 30. 将通用类型转换为另一种通用类型扩展方法