如何使用Java 8 Streams从List获取下一个元素?

如果要遍历List,我想将当前值与列表的下一个元素进行比较。

使用Java 8 Stream可以实现吗?

最佳答案

我的免费StreamEx库允许您使用其他 pairMap 中间操作来处理流元素对。像这样:

StreamEx.of(input).pairMap((current, next) -> doSomethingWith(current, next));

其中inputCollection,array或Stream。例如,通过这种方式,您可以轻松检查输入是否已排序:
boolean isSorted = StreamEx.of(input)
                           .pairMap((current, next) -> next.compareTo(current))
                           .allMatch(cmp -> cmp >= 0);

还有 forPairs 终端操作,它是对所有输入元素对的forEach模拟:
StreamEx.of(input).forPairs((current, next) -> doSomethingWith(current, next));

这些功能可与任何流源(无论是否随机访问)很好地配合使用,并完全支持并行流。

10-05 21:21
查看更多