2017-10-23 7 views
1
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) 
} 

は、私は明確な()は動作しませんが、それは最初のリストと同じくらいのアイテムをもたらし、リストを表示するリストのマップを取得し、唯一のユニークなものをフィルタリングして保存したいなぜdistinct()は一意の整数項目を返さないのですか?

答えて

2

distinctは通過重複を除外していますそれ。あなたが間違った場所にそれを適用したので、それ自体は別物であるListオブジェクトを受け取るだけです。

は、それが新しい Listに集約される前に繰り出さ Listフィルタを取得を取得するために toListdistinctを適用します。

return repository.loadItems(id) 
    .take(1) 
    .flatMapIterable { item -> item } 
    .map { item -> item.clientId} 
    .distinct() // <------------------------------------------------------ 
    .toList() 
    .toFlowable() 
関連する問題