【Java】【Stream流】分页

本文介绍了如何在Java8中利用StreamAPI进行分页操作,通过skip和limit方法按需加载数据,减少内存占用,提升性能。通过实例演示了如何处理大数据列表,实现分页打印。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Java开发中,使用Java自带Stream流的API来进行开发是一种常见的做法。

下面是一个简单的例子:

假设我们有一个包含100个数据项的列表。我们需要按照每页10个数据进行分页,并返回指定页码的数据。可以使用Java 8中的流来实现分页:

List<String> data = new ArrayList<>(100); // 假设有100个数据项
int pageNum = 5; // 需要返回第5页的数据
int pageSize = 10; // 每页10个数据

List<String> pageData = data.stream()
    .skip((pageNum - 1) * pageSize) // 跳过前面的数据项
    .limit(pageSize) // 取出指定数量的数据
    .collect(Collectors.toList()); // 收集数据

System.out.println(pageData); // 打印第5页的数据

在上面的代码中,我们使用了skip()方法来跳过前面的数据项,使用limit()方法来取出指定数量的数据。最后使用collect()方法将数据收集到一个列表中。

这种方法的好处是可以避免一次性加载所有数据,减小内存占用,提高程序的性能。

下面是个demo
List<String> dataList = new ArrayList<>(); // 假设 dataList 为原始数据列表
int pageSize = 10; // 每页记录数
int pageNumber = 2; // 当前页数

List<String> pageList = dataList.stream()
    .skip((pageNumber - 1) * pageSize) // 跳过前面无用的记录
    .limit(pageSize) // 获取指定记录数
    .collect(Collectors.toList()); // 将结果集合并为列表

// 打印分页数据
pageList.forEach(System.out::println);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值