Java 8获取连续数量列表的功能方式

ttt*_*ttt 4 java functional-programming java-8

例如,我有一个整数列表,如 List(1,2,3,4,5,6,7)

我想在Java 8中获得所有结合3个数字的更多功能,以学习Java 8.(我知道如何以命令的方式完成它)

因此上面的结果可以是列表列表:

List(List(1,2,3), List(2,3,4), List(3,4,5), List(4,5,6), List(5,6,7))
Run Code Online (Sandbox Code Playgroud)

谢谢

Nam*_*man 7

您可以List.subList在迭代时使用它:

final int subListSize = 3;
List<Integer> list = List.of(1, 2, 3, 4, 5, 6, 7);
List<List<Integer>> sublists = IntStream.rangeClosed(0, list.size() - subListSize)
            .mapToObj(i -> list.subList(i, i + subListSize))
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)