一次从流中选择2个元素 [英] pick 2 elements from stream at a time
本文介绍了一次从流中选择2个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我们有一个集合(或流?)
Suppose we have a collection (or stream?)
{"1","2","3","4"...}
现在我们想要两个元素并组成一对像这样
now we want to take two elements and compose a pair like this
{{"1","2"}, {"2","3"},{"3","4"}..}
我们知道如何以丑陋的方式(for loop)。
We know how to do that the ugly way (for loop).
我想知道我们如何用java 8流做这个?
I wonder how do we do this with java 8 streams?
因为java流和被动扩展中的方法是几乎相同(都是monad)我认为可能有类似的东西RX .pick(2)
这会在2个元素到达时触发事件......
Because approaches in java streams and reactive extensions are pretty much same (both are monads) I thought there might be something alike RX .pick(2)
which would trigger event when 2 elements arrive...
推荐答案
可以使用 IntStream.range
循环流 - 类 - 的方式。
It is possible to use the IntStream.range
to loop in a stream-kind-of-way.
String[] str = {"1", "2", "3", "4"};
final String[][] result = IntStream.range(0, str.length - 1)
.mapToObj(i -> new String[]{str[i], str[i + 1]})
.toArray(String[][]::new);
结果包含 {{1,2},{ 2,3},{3,4}}
。
这篇关于一次从流中选择2个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文