相同点
过滤发射的相同元素,对于对象需要实现equals方法
区别
- distinctUntilChanged只确保相邻元素不重复出现
- distinct会过滤掉之前已发射的元素
distinctUntilChanged
@Test
fun distinct(){
Observable.create<Int> {
for (i in 0..3){
it.onNext(i)
it.onNext(i)
}
for (i in 0..3){
it.onNext(i)
}
it.onComplete()
}.distinctUntilChanged()
.subscribeBy {
System.out.print("$it ")
}
: 0 1 2 3 0 1 2 3
distinct
@Test
fun distinct(){
Observable.create<Int> {
for (i in 0..3){
it.onNext(i)
it.onNext(i)
}
for (i in 0..3){
it.onNext(i)
}
it.onComplete()
}.distinct()
.subscribeBy {
System.out.print("$it ")
}
: 0 1 2 3
网友评论