Android Rxjava distinct 过滤操作符
- lambda表达式 避免不必要的手动类型声明
class Item{
var name = ""
var id = ""
}
//初始化数据
val items = ArrayList<Item>()
for(i in 1..10){
val item = Item()
item.name = " name is : $i"
item.id = i.toString()
items.add(item)
}
//设置重复数据
for(i in 5..10){
val item = Item()
item.name = " name is : $i"
item.id = i.toString()
items.add(item)
}
// 去重操作前数据展示
for(value in items){
Log.e("MainActivity","distinct before item id is :" + value.name.toString())
}
//去重操作
Observable.fromIterable(items).distinct { t ->
t.id
}.subscribe {
Log.e("MainActivity","distinct after item id is :" + it.name.toString())
}
结果如图: