如何使用Java流从列表中的每次迭代中获取下两个对象?

问题描述 投票:0回答:1

我想每次迭代都从ArrayList中获取下两个对象。我知道我们可以使用传统的for循环来实现此目的,但是只是想知道是否还有其他方法可以做到这一点。

例如,如果我有以下列表,

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);

我的输出应该是

[1, 2]
[2, 3]
[3, 4]
[4, 5]
[5, 6]

任何帮助将不胜感激。

java list java-8 java-stream
1个回答
0
投票

通过使用IntStream,您可以基于索引迭代List,并将结果收集到List

List<List<Integer>> res = IntStream.range(0, list.size()-1)
                                   .mapToObj(i->Arrays.asList(list.get(i),list.get(i+1)))
                                   .collect(Collectors.toList());

输出:

[[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]
© www.soinside.com 2019 - 2024. All rights reserved.