从RxJava2中的列表中一次取出n个元素

问题描述:

我有一个元素列表,我想从该列表中一次处理n个元素。我怎样才能以RX的方式做到这一点?从RxJava2中的列表中一次取出n个元素

我看了一下take算子,但它只取第n个或最后n个元素。我需要处理列表中的所有元素,但一次处理n个元素。

理想情况下,我应该从一个更大的列表中得到多个大小为n的列表。

+0

为什么不用'subList()'自己分割列表? – Lino

+0

我想用RX方式使用observables来做它。 –

你可以使用window()(或它的一个变种重载的):

observable.window(batchSize).subscribe(...) 

或者,如果你不希望有等待窗口“补”,那么也许buffer()(或之一它的过载变量):

observable.buffer(batchSize).subscribe(...) 
+0

我用过缓冲区,谢谢! –