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);
    }
}
相关推荐
怕孤单的草丛11 分钟前
缓存管理面临的主要问题
java·数据库·缓存
F202269748624 分钟前
西门子 PLC 与 C# 通信
开发语言·c#
gugucoding42 分钟前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
万联WANFLOW2 小时前
多分支企业组网,IP 网段到底该怎么规划
开发语言·php
阿里嘎多学长2 小时前
2026-07-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管
犀利豆3 小时前
AI in Harness(二)
java·人工智能·后端
Alan_6913 小时前
聊聊 Swagger/Postman/Apifox 的真实选型与 Python 项目实战
python·测试工具·postman
cookies_s_s3 小时前
C++ 字符串动态创建对象 -- 工厂模式、自动注册、模板递归动态调用
服务器·开发语言·c++
智慧物业老杨4 小时前
物业绿化数智化权责管控方案:基于工单平台的双层权限追溯模块落地实践
python
沉静的小伙4 小时前
在微服务中使用领域事件
java·运维·微服务