android - RxJava 2 - 列表对象中的过滤器列表

标签 android kotlin rx-java2

getData()返回 Single <ArrayList1> 里面有很多对象,也是ArrayListX .我只想收到那些 cars (ArrayList) 即不为空。当然,results.filter { cars -> cars.size > 0 }不会工作,因为它返回列表不是 bool 值。如何以正确的方式实现这一目标?附言还在学习rxjava,哈哈

val disposable = repository.getData()
                    .observeOn(AndroidSchedulers.mainThread())
                    .filter { results ->
                        results.filter { cars -> cars.size > 0 }
                    }
                    .subscribe({ searchResults ->
                       ...
                    }, { _ ->
                        ...
                    })
            compositeDisposable.add(disposable)

最佳答案

这对我有用:

import io.reactivex.Single
import java.util.*

fun main(args: Array<String>) {

    val source = Single.just(Arrays.asList(
            Collections.emptyList(),
            Arrays.asList(1, 2),
            Collections.emptyList(),
            Arrays.asList(3, 4, 5)
    ));

    // Single<List<(Mutable)List<Int!>!>!>!
    val output = source.map({ items -> items.filter({ !it.isEmpty()} )})

    output.subscribe({ res -> System.out.println(res) })
}

打印

[[1, 2], [3, 4, 5]]

关于android - RxJava 2 - 列表对象中的过滤器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49234242/

相关文章:

java - TabBar 应用程序中的 Android MapView -> NullPointerException

java - 如何将List的内容传递给另一个Android Activity

android - Lottie动画无法编译-为什么?

kotlin - 如何在 Kotlin 中检查类属性是否为 List 类型

java - Vertx Kafka 通过显式轮询自动提交

android - 如何在类似于 Youtube 的 MotionLayout 中处理 <OnClick> 和 onClickListener

java - 异步调用集合中的每个项目

java - Android Studio codestyles/Project.xml 配置

java - 如何根据发出的事件有条件地缓冲分组的 Observable/Flux?

java - 如何在 RxJava 2 中组合动态数量的 Observable?