在android中,当concat 2 arraylist的对象使用rx时,有哪些方法可以删除具有相同id的对象?
我有两个列表,它们可以有相同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
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对象列表,我一开始忘了它