如何使用Java 8 Streams从List
获取下一个元素?
如果要遍历List
,我想将当前值与列表的下一个元素进行比较。
使用Java 8 Stream可以实现吗?
最佳答案
我的免费StreamEx库允许您使用其他 pairMap
中间操作来处理流元素对。像这样:
StreamEx.of(input).pairMap((current, next) -> doSomethingWith(current, next));
其中
input
是Collection
,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));
这些功能可与任何流源(无论是否随机访问)很好地配合使用,并完全支持并行流。