在Java中使用Stream API返回分页结果是否可行?

6

所以,我有一个带有一些对象的Stream,需要从Stream返回分页结果。例如,从第2到第4个元素。

Stream<String> strs = Stream.of("qwe", "asd", "zxc", "rty", "fgh", "vbn");

请返回仅第2到第4个元素:asd,zxc,rty

有可能吗?

谢谢!


1
Javadoc 是你的好朋友:https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#skip-long-, https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#limit-long- - JB Nizet
2个回答

12
为了实现这一点,您可以结合使用 Stream#skipStream#limit
strs.skip(1).limit(3).forEach(System.out::println);

这将输出以下内容:

asd
zxc
rty
在这个例子中,Stream#skip 跳过了流的第一个元素,而 Stream#limit 则将剩余的流限制为三个元素。

2
你可以使用skiplimit来进行操作。原始答案翻译成“最初的回答”。
Stream<String> strs = Stream.of("qwe", "asd", "zxc", "rty", "fgh", "vbn");
String result=strs.skip(1).limit(3).collect(Collectors.joining(" "));
System.out.println(result);

Output:

asd zxc rty


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接