Какие способы удаления объектов с одинаковым идентификатором, когда Concat 2 ArrayList объектов использовать RX в Android? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть 2 списка, и они могут иметь одинаковые объекты с одинаковым идентификатором, и я хочу оставить только один.

Как использовать оператор фильтра?

val query1: Observable<ArrayList<Ops>> = Observable.fromArray(listResult)
val query2: Observable<ArrayList<Ops>> = Observable.fromArray(adapter.items)
Observable
    .concat(query1, query2)
    // .filter{} // how?
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe {
        val list = it // expect only unique obj
        adapter.items = list
    }

Или существует еще один простой подход? Спасибо!

1 Ответ

2 голосов
/ 11 апреля 2019
val query1: Observable<ArrayList<Ops>> = Observable.fromArray(listResult)
val query2: Observable<ArrayList<Ops>> = Observable.fromArray(adapter.items)
Observable
    .concat(query1, query2)
    .flatMapIterable { concatList -> concatList }
    .distinct { opsItem -> opsItem.id }
    .toList()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe {
        val list = it // expect only unique obj
        adapter.items = list
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...