gpt4 book ai didi

java - 从流中收集连续的对

转载 作者:行者123 更新时间:2023-12-01 23:24:10 25 4
gpt4 key购买 nike

给定一个流,例如 { 0, 1, 2, 3, 4 },

我怎样才能最优雅地将它转换成给定的形式:

{ 新对(0, 1), 新对(1, 2), 新对(2, 3), 新对(3, 4) }

(当然,假设我已经定义了 Pair 类)?

编辑:这并不是严格意义上的整数或原始流。对于任何类型的流来说,答案应该是通用的。

最佳答案

Java 8 流库主要面向将流分割成更小的 block 以进行并行处理,因此有状态管道阶段非常有限,并且不支持获取当前流元素的索引和访问相邻流元素之类的操作。

解决这些问题的典型方法(当然有一些限制)是通过索引驱动流,并依赖于在某些随机访问数据结构(例如可以从中检索元素的 ArrayList)中处理值。如果值位于 arrayList 中,则可以通过执行以下操作来生成所请求的对:

    IntStream.range(1, arrayList.size())
.mapToObj(i -> new Pair(arrayList.get(i-1), arrayList.get(i)))
.forEach(System.out::println);

当然,限制是输入不能是无限流。不过,该管道可以并行运行。

关于java - 从流中收集连续的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58311909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com