Obtiene N últimos objects emitidos por observables en RxJava2

Tengo un Observables que emite algunos numbers y simplemente quiero tomar los últimos N elementos.

Tengo el siguiente código (estoy usando RxKotlin que es simplemente un contenedor en RxJava):

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

Desafortunadamente, el resultado es [10] , cuando miré más de cerca lo que devuelve el operador de buffer, vi esto:

 [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] 

¿Hay alguna forma de get el último búfer "completo" -> [8, 9, 10] ?

En RxJava, muchos operadores tienen el nombre que coincide con la expresión de lenguaje común de la misma operación: take + last N -> takeLast(int n) :

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