代码之家  ›  专栏  ›  技术社区  ›  I.S

如何在RxAndroid中将List<List<X>>转换为List<X>?

  •  0
  • I.S  · 技术社区  · 6 年前

    我有一个ID列表,我正在将它映射到子列表列表,以便获取列表>然后我需要得到一个项目列表,但我不知道合适的运算符。

    .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 回复  |  直到 6 年前
        1
  •  2
  •   Andrii Turkovskyi    6 年前

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

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

    Flowable<T>

        2
  •  0
  •   I.S    6 年前

    我想回答我想得不好的问题,所以我的答案是用地图和内部地图翻列表,然后把它放到项目列表中

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