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/