【发布时间】:2016-10-31 02:48:00
【问题描述】:
我有Observable<Rates>,Rate 只是一个简单的对象:
Rate(val value:String){}
Rates(val rates: List<Rate>)
我想将 Observable<Rates> 更改为 Observable<HashMap<String,Long>。
例如,对于费率Rates(arrayOf(Rate("1"),Rate("2"), Rate("3"),Rate("3"), Rate("2"),Rate("2"))),我期望结果:
(1 -> 1)
(2 -> 3)
(3 -> 2)
(4 -> 0)
(5 -> 0)
我开始创造类似的东西:
service.getRates()
.flatMap {it-> Observable.from(it.rates) }
.filter { !it.value.isNullOrEmpty() }
.groupBy {it -> it.value}
.collect({ HashMap<String,Long>()}, { b, t -> b.put(t.key, t.count???)}
但我被困在这里,我不知道计算所有值?如果没有 4 个中的 5 个,我不知道如何添加空值 (0)。有没有办法使用 rx 来做到这一点?
【问题讨论】:
标签: rx-java reactive-programming kotlin rx-kotlin