如果我有一对Observable of Pairs:Observable<Pair<String, String>> source = ...
我在它上面调用toList()
来获得对的列表,有没有办法将它转换为两个单独的列表 - 第一个列表和一个秒列表?意思是,做这样的事情,但使用Rx运算符:
Observable<Pair<String, String>> source = ...;
List<String> allFirsts = new ArrayList<>();
List<String> allSeconds = new ArrayList<>();
for (Pair p : source.toList()) {
allFirsts.add(p.first);
allSeconds.add(p.second);
}
答案 0 :(得分:0)
collect
将这些项目转换为Pair<List<String>, List<String>>
:
source.collect(
() -> new Pair<List<String>,List<String>>(
new ArrayList<String>(), new ArrayList<String>()),
(collection, pair) -> {
collection.first.add(pair.first);
collection.second.add(pair.second);
});