如何在 RxAndroid 中将 List<List<X>> 转换为 List<X>?
How to convert List<List<X>> to List<X> in RxAndroid?
我有一个 id 列表,我正在将它映射到子列表列表,所以得到 list> 然后我需要得到一个项目列表,但我不知道合适的运算符。
.map { it ->
val step = 200
var count = it.stores.size
val subLists = ArrayList<List<Int>>()
var i = 1
while (count > 0) {
val start = (i - 1) * step
//if...
var end = i * step
count -= step
val items = it.items.subList(start, end)
subLists.add(items)
i++
}
subLists
}
.toFlowable()
.flatMapIterable { it -> it }
.flatMap {
personDao.loadById(it)
}.toList()
.我需要得到一份物品清单,怎么办?
我想回答我没有想好的问题。所以我的答案使用地图和内部地图遍历列表并将其添加到项目列表
.map {
var items = emptyList<Item>()
it.map {
items += it
}
items
}.toFlowable()
您可以简单地使用:
val oldList: List<List<T>> = listOf()
val newList = oldList.flatMap { it }
而且您不必为此使用 Rx
如果您需要处方药:
val flowable = Flowable.fromIterable(oldList).flatMap {
Flowable.fromIterable(it)
}
你得到 Flowable<T>
我有一个 id 列表,我正在将它映射到子列表列表,所以得到 list> 然后我需要得到一个项目列表,但我不知道合适的运算符。
.map { it ->
val step = 200
var count = it.stores.size
val subLists = ArrayList<List<Int>>()
var i = 1
while (count > 0) {
val start = (i - 1) * step
//if...
var end = i * step
count -= step
val items = it.items.subList(start, end)
subLists.add(items)
i++
}
subLists
}
.toFlowable()
.flatMapIterable { it -> it }
.flatMap {
personDao.loadById(it)
}.toList()
.我需要得到一份物品清单,怎么办?
我想回答我没有想好的问题。所以我的答案使用地图和内部地图遍历列表并将其添加到项目列表
.map {
var items = emptyList<Item>()
it.map {
items += it
}
items
}.toFlowable()
您可以简单地使用:
val oldList: List<List<T>> = listOf()
val newList = oldList.flatMap { it }
而且您不必为此使用 Rx
如果您需要处方药:
val flowable = Flowable.fromIterable(oldList).flatMap {
Flowable.fromIterable(it)
}
你得到 Flowable<T>