从RxJava2中的列表中一次取出n个元素
问题描述:
我有一个元素列表,我想从该列表中一次处理n个元素。我怎样才能以RX的方式做到这一点?从RxJava2中的列表中一次取出n个元素
我看了一下take
算子,但它只取第n个或最后n个元素。我需要处理列表中的所有元素,但一次处理n个元素。
理想情况下,我应该从一个更大的列表中得到多个大小为n的列表。
答
你可以使用window()
(或它的一个变种重载的):
observable.window(batchSize).subscribe(...)
或者,如果你不希望有等待窗口“补”,那么也许buffer()
(或之一它的过载变量):
observable.buffer(batchSize).subscribe(...)
+0
我用过缓冲区,谢谢! –
为什么不用'subList()'自己分割列表? – Lino
我想用RX方式使用observables来做它。 –