在android中,当concat 2 arraylist的对象使用rx时,有哪些方法可以删除具有相同id的对象?

在android中,当concat 2 arraylist的对象使用rx时,有哪些方法可以删除具有相同id的对象?,android,kotlin,Android,Kotlin,我有两个列表,它们可以有相同id的相同对象,我只想留下一个 它如何使用操作员过滤器 val query1: Observable<ArrayList<Ops>> = Observable.fromArray(listResult) val query2: Observable<ArrayList<Ops>> = Observable.fromArray(adapter.items) Observable .concat(query1, qu

我有两个列表,它们可以有相同id的相同对象,我只想留下一个

它如何使用操作员过滤器

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
    }
val query1:Observable=Observable.fromArray(listResult)
val query2:Observable=Observable.fromArray(adapter.items)
可观察
.concat(查询1、查询2)
//.filter{}//如何进行?
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅{
val list=it//仅期望唯一的obj
adapter.items=列表
}
或者存在另一个简单的方法?谢谢

val query1:Observable=Observable.fromArray(listResult)
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
    }
val query2:Observable=Observable.fromArray(adapter.items) 可观察 .concat(查询1、查询2) .flatMapIterable{concatList->concatList} .distinct{opsItem->opsItem.id} 托利斯先生() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .订阅{ val list=it//仅期望唯一的obj adapter.items=列表 }
val query1:Observable=Observable.fromArray(listResult)
val query2:Observable=Observable.fromArray(adapter.items)
可观察
.concat(查询1、查询2)
.flatMapIterable{concatList->concatList}
.distinct{opsItem->opsItem.id}
托利斯先生()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅{
val list=it//仅期望唯一的obj
adapter.items=列表
}

你能解释一下吗:“it”-这是ArrayList,我们不能称之为“it.id”。它是接收者,它意味着它是可观测对象发出的项目。在您的情况下,它将是“Ops”对象。Observable.just(listOf(“,”).distinct{opsItem->opsItem.id}可能还需要添加.toList().toObservable()-要转换回out对象列表,我一开始忘了它。你能解释一下吗:'它'-这是ArrayList,我们不能调用“it.id”它是接收者,它意味着它是由Observable发出的项。在您的情况下,它将是“Ops”对象。Observable.just(listOf(“,”).distinct{optsitem->optsitem.id}可能还需要添加.toList().toObservable()-要转换回out对象列表,我一开始忘了它