为什么 distinct() 不 return 独特的整数项目?

why distinct() doesn't return unique Integer items?

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()