2017-05-06 14 views
1

Observablesにはいくつかの数値があり、最後のN個の要素を取りたいだけです。 (単にRxJavaのラッパーである私はRxKotlinを使用しています)RxJava2でobservableで最後にN個のオブジェクトを取得します

私は、次のしているコード:私は近いバッファオペレータが戻るが、私はこれを見たものに見えたとして

val list = listOf(1,2,3,4,5,6,7,8,9,10) 
Observable.fromIterable(list) 
      .buffer(3, 1) 
      .lastOrError() 
      .subscribe{value -> println(value)} 

は、残念ながら結果は、[10]次のとおりです。

[1, 2, 3] 
[2, 3, 4] 
[3, 4, 5] 
[4, 5, 6] 
[5, 6, 7] 
[6, 7, 8] 
[7, 8, 9] 
[8, 9, 10] 
[9, 10] 
[10] 

最後に "フル"バッファを取得する方法はありますか - >[8, 9, 10]? RxJavaで

答えて

4

、多くの事業者が同じ操作の共通言語表現に一致する名前を持つ:+最後のNを取る - >takeLast(int n)

Observable.range(1, 10) 
    .takeLast(3) 
    .toList() // <-- in case you want it as a list 
    .subscribe(System.out::println); 
関連する問題