Java的stream流进行分页取数据

java 复制代码
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class StreamPagination {
    public static void main(String[] args) {
        List<Integer> data = IntStream.rangeClosed(1, 100).boxed().collect(Collectors.toList());

        int pageSize = 10;
        int pageNumber = 2;

        List<Integer> pageData = getPageData(data, pageSize, pageNumber);
        List<Integer> pageData1 = data.stream()
                .skip((pageNumber - 1) * pageSize) // 跳过前面的数据项
                .limit(pageSize) // 取出指定数量的数据
                .collect(Collectors.toList()); // 收集数据
        System.out.println("第" + pageNumber + "页的数据:" + pageData);
    }

    public static <T> List<T> getPageData(List<T> data, int pageSize, int pageNumber) {
        int fromIndex = (pageNumber - 1) * pageSize;
        int toIndex = Math.min(fromIndex + pageSize, data.size());

        return data.subList(fromIndex, toIndex);
    }
}
相关推荐
蓝创工坊Blue Foundry15 小时前
扫描件批量转 Excel:先确认要整表还原还是字段汇总
python·pdf·ocr·excel
king_linlin16 小时前
算法基础——算法复杂度
c语言·开发语言·数据结构·算法
二十雨辰16 小时前
[爬虫]-解析
开发语言·python
zzq779716 小时前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
java1234_小锋16 小时前
【免费】基于Spark实时电商用户行为分析与预测(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·spark·kafka·实时电商用户行为分析与预测系统
keyipatience16 小时前
日志和线程池
java·开发语言
码云数智-园园16 小时前
建站平台有哪些?建站工具怎么选
开发语言
nVisual16 小时前
01-环境监控集成方案
运维·服务器·开发语言·网络·数据库·数据中心布线·综合布线管理软件
此生决int16 小时前
深入理解C++系列(04)——类和对象(下)
开发语言·c++
天天爱吃肉821816 小时前
AI Agent时代你的经验值多少钱?
人工智能·python·功能测试·学习·汽车