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);
    }
}
相关推荐
Kuo-Teng4 分钟前
LeetCode 279: Perfect Squares
java·数据结构·算法·leetcode·职场和发展
IMPYLH9 分钟前
Lua 的 collectgarbage 函数
开发语言·笔记·junit·单元测试·lua
Filotimo_18 分钟前
SpringBoot3整合Druid数据源
java·spring boot
百锦再25 分钟前
第18章 高级特征
android·java·开发语言·后端·python·rust·django
Tony Bai39 分钟前
Go 在 Web3 的统治力:2025 年架构与生态综述
开发语言·后端·架构·golang·web3
乄bluefox41 分钟前
Reactor 中的 doOnError 与 doOnCancel
java·reactor·rea
源码之家44 分钟前
基于Python房价预测系统 数据分析 Flask框架 爬虫 随机森林回归预测模型、链家二手房 可视化大屏 大数据毕业设计(附源码)✅
大数据·爬虫·python·随机森林·数据分析·spark·flask
CoderYanger1 小时前
B.双指针——3194. 最小元素和最大元素的最小平均值
java·开发语言·数据结构·算法·leetcode·职场和发展·1024程序员节
SalvoGao1 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习