如何创建大列表的分块列表
窗口:
Observable.just(mutableListOf(1,2,3,4,5,6))
.window(2)
.flatMap { chunk -> chunk }
.map { chunk -> println("This is a chunk of 2 numbers -> ${chunk}") }
.subscribe()
结果This is a chunk of 2 numbers -> [1, 2, 3, 4, 5, 6]
为什么呢?我的意思是,为什么不打印3次(3个列表每个包含2个数字)
和缓冲区
Observable.just(mutableListOf(1,2,3,4,5,6))
.buffer(2)
.flatMap { chunk -> Observable.just(chunk) }
.map { chunk -> println("This is a chunk of 2 numbers -> ${chunk}") }
.subscribe()
缓冲区的结果 - > This is a chunk of 2 numbers -> [[1, 2, 3, 4, 5, 6]]
除了为2个数字组创建更多列表之外,这个几乎已经做了:O =(
有些亮点?答案 0 :(得分:0)
Observable.just
为您提供一个元素的流(列表)。您应该使用Observable.from
。
答案 1 :(得分:0)
可以使用 Rxjava2缓冲区
这是获取它的代码。
Observable.fromIterable(mutableListOf(1,2,3,4,5,6))
.buffer(2, 2)
// First param: 2 means, it takes max of 2 from its start index and create list
// seconds param 2 means, it jumps two step every time
.map { chunk -> println("This is a chunk of 2 numbers -> ${chunk}") }
.subscribe()
在执行上述代码时,它给出3个列表。每个列表中包含2个项目。
这是2个数字的块-> {1,2}
这是2个数字的大块-> {3,4}
这是由2个数字组成的块-> {5,6}