RxJava 轉換操作符groupBy

2021-07-10 03:50:14 字數 3789 閱讀 2911

groupby操作符顧名思義就是分組的意思:

第一步:構造分組  call的返回值決定了組名

observable.range(0, 10).groupby(new func1() 

})

第二部:訂閱分組詳情:

.subscribe(new observer>() 

@override

public void onerror(throwable e)

@override

public void onnext(final groupedobservableintegerintegergroupedobservable)

@override

public void onerror(throwable e)

@override

public void onnext(integer integer)

});}

});

全部**:

observable.range(0, 10).groupby(new func1() 

}).subscribe(new observer>()

@override

public void onerror(throwable e)

@override

public void onnext(final groupedobservableintegerintegergroupedobservable)

@override

public void onerror(throwable e)

@override

public void onnext(integer integer)

});}

});

結果為:

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:0  value:0

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:1  value:1

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:2  value:2

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:0  value:3

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:1  value:4

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:2  value:5

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:0  value:6

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:1  value:7

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:2  value:8

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>group:0  value:9

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>inner oncompleted()

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>inner oncompleted()

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>inner oncompleted()

02-26 18:01:36.218 9796-9796/com.rxandroid.test1 d/----->: ------>oncompleted()

call的返回值並不是組的個數:

如:

observable.range(0, 10).groupby(new func1() 

}).subscribe(new observer>()

@override

public void onerror(throwable e)

@override

public void onnext(final groupedobservableintegerintegergroupedobservable)

@override

public void onerror(throwable e)

@override

public void onnext(integer integer)

});}

});

結果只有乙個組,這個組的組名叫2:

02-26 18:14:19.228 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:0

02-26 18:14:19.228 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:1

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:2

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:3

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:4

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:5

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:6

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:7

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:8

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>group:2  value:9

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>inner oncompleted()

02-26 18:14:19.238 21365-21365/com.rxandroid.test1 d/----->: ------>oncompleted()

RxJava轉換操作符window

window操作符會在時間間隔內快取結果,類似於buffer快取乙個list集合,區別在於window將這個結果集合封裝成了observable window longtimespan,timeunit unit 第乙個是快取的間隔時間,第二個引數是時間單位 結果 02 27 11 26 38.75...

RxJava筆記 RxJava操作符

用來建立observable。public static observablecreate onsubscribef 把其他型別的物件和資料型別轉化成observable。observable.just 123 把其他型別的物件和資料型別轉化成observable。與just區別在與引數返回值不同 ...

RxJava操作符學習

操作符學習推薦閱讀 官方英文 翻譯中文 先來看乙個簡單的例子 被觀察者 observable.onsubscribeintegeronsubscribe new observable.onsubscribe 觀察者 subscriberintegersubscriber new subscriber...