【发布时间】:2018-10-11 13:20:38
【问题描述】:
我有一个问题,我想知道是否有使用 Streams 的解决方案。
假设你有一个有序的对象流;让我们假设一个整数流。
Stream<Integer> stream = Stream.of(2,20,18,17,4,11,13,6,3,19,4,10,13....)
现在我想过滤所有值与该值之前的前一个数字之差大于n的所有值。
stream.filter(magicalVoodoo(5))
// 2, 20, 4, 11, 3, 19, 4, 10 ...
我有可能这样做吗?
【问题讨论】:
-
您可以将
Stream更改为List吗?在这种情况下,事情会简单得多 -
"不,这不可能使用流,至少不容易。流 API 抽象出处理元素的顺序:流可以并行处理,也可以以相反的顺序处理. 所以“下一个元素”和“前一个元素”在流抽象中是不存在的。 stackoverflow.com/questions/31650157/…
-
顺便说一句,让我们从你的输出中只取前三个数字,为什么
2和4在那里?需要解释一下吗? -
所以区别是不是前一个,而是下一个,你现在也想要绝对值;当然你的描述和你的实际例子没有任何意义
-
流绝对不是为了这个,这个问题确实是关于一些 for 循环和一段时间很可能
标签: java java-stream