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);
    }
}
相关推荐
老蒋每日coding8 小时前
LangGraph:从入门到Multi-Agent超级智能体系统进阶开发
开发语言·python
郁闷的网纹蟒8 小时前
虚幻5---第12部分---蒙太奇
开发语言·c++·ue5·游戏引擎·虚幻
小学仔8 小时前
科大镜像科大镜像科大镜像
java
岚天start8 小时前
Python HTTP服务器添加简单用户名密码认证的三种方案
服务器·python·http
小旭95278 小时前
Java 反射详解
java·开发语言·jvm·面试·intellij-idea
雨季6668 小时前
Flutter 三端应用实战:OpenHarmony “极简文本行数统计器”
开发语言·前端·flutter·ui·交互
HalvmånEver8 小时前
Linux:线程创建与终止上(线程五)
java·linux·jvm
cuber膜拜8 小时前
Weaviate 简介与基本使用
数据库·python·docker·向量数据库·weaviate
m0_748233178 小时前
PHP版本演进:从7.x到8.x全解析
java·开发语言·php
qq_12498707538 小时前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计