android - 为什么 distinct() 不返回唯一的整数项?

标签 android rx-java rx-java2

return repository.loadItems(id)
    .take(1)
    .flatMapIterable { item -> item }
    .map { item -> item.clientId}
    .toList()
    .toFlowable()
    .distinct();


fun loadItems(id: Int): Flowable<List<Item>> {
    return dao.loadItems(id)
}

我将 List 映射到 List 并希望过滤并仅保存唯一的,而 distinct() 不起作用它带来与初始列表一样多的项目

最佳答案

distinct 过滤掉通过它的重复项。由于您将它应用在错误的位置,它只接收一个 List 对象,该对象本身是不同的。

toList 之前应用 distinct 以在展开的 List 聚合到新的 List 之前对其进行过滤>.

return repository.loadItems(id)
    .take(1)
    .flatMapIterable { item -> item }
    .map { item -> item.clientId}
    .distinct()  // <------------------------------------------------------
    .toList()
    .toFlowable()

关于android - 为什么 distinct() 不返回唯一的整数项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891639/

相关文章:

java - Observables 的单元测试客户端

android - 等待上一个事件完成 Rx

java - 仅当其他方法完成时才调用方法 - RxJava

android - 重新选择日期选择器后的日期选择器对话框显示当前日期

android - 设置通知提醒

android - HttpResponseCache 不缓存文件

android - 使用 RxJava 和播放服务视觉时的致命信号 11 (SIGSEGV)

kotlin - 如何使用Retrofit和RxJava解析json数组

android - RxJava2如何观察UDP数据包?

java - 无法使用 Android SDK 3 连接到 Facebook