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 map映射到List并希望过滤并保存只有唯一的,而distinct()不起作用它带来了与初始列表一样多的项目
答案 0 :(得分:2)
distinct
过滤掉通过它的重复项。由于您在错误的位置应用它,它只接收一个List
对象,它本身是不同的。
在distinct
之前应用toList
,以便在将展开的List
汇总到新的List
之前对其进行过滤。
return repository.loadItems(id)
.take(1)
.flatMapIterable { item -> item }
.map { item -> item.clientId}
.distinct() // <------------------------------------------------------
.toList()
.toFlowable()