0
RxJavaでアイテムリストをフィルタリングするにはどうすればよいですか?RxJavaを使用したアイテムのフィルタリスト
私は、次のコードを持っているとloadData()
はList<Chatroom>
発する:
repository.loadData()
.subscribe(chatrooms -> {
view.showData(chatrooms);
view.showEmptyState(chatrooms.size() == 0);
}, throwable -> Log.i("OnError", "onLoadChatrooms ", throwable)));
と私はloadData()
後にフィルタを適用したいです。次のコードスニペットで私の解決策を見ることができますが、もっと良い方法がありますか?
repository.loadData()
.map(chatrooms -> {
List<Chatroom> openChatrooms = new ArrayList<>();
for (Chatroom chatroom: chatrooms){
if (!chatroom.getBlocked().equals(IS_BLOCKED)) {
openChatrooms.add(chatroom);
}
}
return openChatrooms;
})
.subscribe(chatrooms -> {
view.showData(chatrooms);
view.showEmptyState(chatrooms.size() == 0);
}, throwable -> Log.i("OnError", "onLoadChatrooms ", throwable)));
http://reactivex.io/documentation/operators/filter.html – LordRaydenMK
[RxとRetrofitを使用したレスポンスのフィルタリング]の可能な複製(https://stackoverflow.com/questions/40096608/filter-a-response- use-rx-and-retrofit) – theFunkyEngineer