getData()
会返回一个单<ArrayList1>
,里面有很多对象,也是ArrayListX
。我想只接收那些非空的cars
(ArrayList)。当然,results.filter { cars -> cars.size > 0 }
将不起作用,因为它返回列表而不是布尔值。如何以正确的方式实现这一目标?附:还在学习rxjava,哈哈
val disposable = repository.getData()
.observeOn(AndroidSchedulers.mainThread())
.filter { results ->
results.filter { cars -> cars.size > 0 }
}
.subscribe({ searchResults ->
...
}, { _ ->
...
})
compositeDisposable.add(disposable)
答案 0 :(得分:1)
这对我有用:
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]]