Как конвертировать списокперечислить <X>в RxAndroid? - PullRequest
0 голосов
/ 04 октября 2018

У меня есть список идентификаторов, и я сопоставляю его со списком подсписков, поэтому получаю список>, а затем мне нужно получить один список элементов, но я не знаю подходящего оператора для него.

.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()

. Мне нужно получить один список предметов, как?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Вы можете просто использовать:

val oldList: List<List<T>> = listOf()
val newList = oldList.flatMap { it }

И вам не нужно использовать Rx для этого

Если вам нужно Rx:

val flowable = Flowable.fromIterable(oldList).flatMap { 
        Flowable.fromIterable(it)
    }

ИВы получаете Flowable<T>

0 голосов
/ 04 октября 2018

Я хочу ответить на мой вопрос, который я не очень хорошо продумал. Поэтому в моем ответе используйте карту и внутреннюю карту, перейдите по списку и отправьте его в список предметов

.map {
      var items = emptyList<Item>()
      it.map {
        items += it
      }
      items
    }.toFlowable()
...