spring boot 业务数据分页(不能直接用mybatis 分页插件分页)用Java 8 stream 快速实现

目录标题

    • 一、适用范围
    • 二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法
    • 三、一般还需要对数据进行排序

一、适用范围

这种方式适用于数据量较少的情况。如果数据量太大,一下子放到内存,可能内存吃不消。

二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法

public TableDataInfo getTrajectory(Integer pageNum, Integer pageSize) {List<T> list= iService.getData();if (pageNum == null || pageSize == null) {pageNum = 1;pageSize = 5;}List<T> collect = list.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());TableDataInfo tableDataInfo = new TableDataInfo(collect, trajectory.size());return tableDataInfo;}
public class TableDataInfo implements Serializable {private static final long serialVersionUID = 1L;/*** 总记录数*/private long total;/*** 列表数据*/private Object rows;/*** 消息状态码*/private int code;/*** 消息内容*/private String msg;/*** 表格数据对象*/public TableDataInfo() {}/*** 分页** @param list  列表数据* @param total 总记录数*/public TableDataInfo(Object list, int total) {this.rows = list;this.total = total;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}public Object getRows() {return rows;}public void setRows(Object rows) {this.rows = rows;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}
}

三、一般还需要对数据进行排序

利用集合的sort()方法,然后重新比较器

用java 8 的lamda表达式快速实现

List<T> list= getData();
list.sort((f, s) -> {//第一个大于,第二个返回-1 降序if (f>s) {return -1;}if (f==s) {return 0;}return 1;});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/788981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab|计及需求侧响应日前—日内两阶段鲁棒备用优化

目录 1 主要内容 日前计划模型 日内调整模型 不确定集建模 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现文章《计及需求侧响应日前—日内两阶段鲁棒备用优化》&#xff0c;以6节点系统为例&#xff0c;综合考虑风电出力不确定性与电力设备 N-k强迫停运&…

NASA数据集——包括阿拉斯加的 39 个站点和加拿大西北部的 12 个站点)的季节性沉降、活动层厚度 (ALT)、垂直土壤水分剖面数据

ABoVE: Active Layer Thickness from Airborne L- and P- band SAR, Alaska, 2017, Ver. 3 简介 文件修订日期&#xff1a;2022-09-15 数据集版本: 3 摘要 本数据集以 30 米的分辨率提供了整个 ABoVE 域 51 个站点&#xff08;包括阿拉斯加的 39 个站点和加拿大西北部的 1…

数据可视化之极坐标

极坐标/雷达图***** polarTrue?import numpy as npimport matplotlib.pyplot as plt plt.rcParams[font.family] [SimHei]# 准备数据rnp.arange(0,2,0.01) theta 2*np.pi*r# 准备画布fig plt.figure() ax plt.subplot(111,projectionpolar) ax.plot(theta,r) ax.set_rma…

救砖刷机------MTK芯片类线刷 救砖 常规线刷不开机 MTK分区表修复【二】

救砖刷机------MTK芯片类线刷 救砖 免授权的一些操作步骤与工具解析【一】 在上期的博文中解析了mtk刷机平台的一些基本选项说明和授权刷写的一些常识。这期将着重说明下mtk机型分区表损坏如何解决。 众所周知。高通分区表在高通线刷包中显而易见,在常规9008刷写中你会正常刷…

什么是Redis共享Session?

如图所示&#xff0c;一个分布式部署的Web服务器将用户的Session信息&#xff08;例如用户登录信息&#xff09;&#xff0c;保存在各自服务器内部。这样会造成一个问题&#xff0c;在分布式部署多个Web服务器时&#xff0c;我们通常会采用负载均衡算法&#xff0c;将多个用户的…

概率论基础——拉格朗日乘数法

概率论基础——拉格朗日乘数法 概率论是机器学习和优化领域的重要基础之一&#xff0c;而拉格朗日乘数法与KKT条件是解决优化问题中约束条件的重要工具。本文将简单介绍拉格朗日乘数法的基本概念、应用以及如何用Python实现算法。 1. 基本概念 拉格朗日乘数法是一种用来求解…

洛谷 P1747 好奇怪的游戏

题目背景 《爱与愁的故事第三弹shopping》娱乐章。 调调口味来道水题。 题目描述 爱与愁大神坐在公交车上无聊&#xff0c;于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘&#xff1a;***&#xff08;游戏名被打上了马赛克&#xff09;。这个游戏类似象棋&#xff…

FPGA简介

FPGA&#xff08;Field-Programmable Gate Array&#xff09;是一种可编程逻辑器件&#xff0c;用于实现数字电路的设计和实现。与传统的ASIC&#xff08;Application-Specific Integrated Circuit&#xff09;相比&#xff0c;FPGA具有可重新配置的特性&#xff0c;可以根据需…

nginx报错相关问题

D:\nginx-1.22.0>nginx -s stop nginx: [emerg] unknown directive “锘?user” in D:\nginx-1.22.0/conf/nginx.conf:1 编码问题&#xff0c;还好我提前压缩了nginx的压缩包&#xff0c;具体哪行我没发现&#xff0c;复制过去就好了 D:\nginx-1.22.0>nginx -s stop ngi…

从数据孤岛到信息共享,应用集成网关打造业务新生态

想象一下&#xff0c;你坐在剧院里&#xff0c;期待着享受一场精彩的音乐剧表演。但当灯光渐暗&#xff0c;音乐开始奏响时&#xff0c;你却发现演出陷入了混乱之中&#xff1a;没有人站在正确的位置&#xff0c;每个人都在互相交谈或保持沉默&#xff0c;管弦乐队的演奏时机也…

0基础学习Mybatis系列数据库操作框架——增删改操作

大纲 新增Mapper配置代码Mapper接口文件应用 删除简单方案Mapper配置代码 高级方案Mapper配置代码Mapper接口文件应用 完整代码 修改Mapper配置代码Mapper接口文件应用 参考资料 在《0基础学习Mybatis系列数据库操作框架——目录结构》一文中&#xff0c;我们已经搭建了查询操作…

绿色wordpress外贸建站模板

绿色wordpress外贸建站模板 https://www.mymoban.com/wordpress/6.html

【JavaScript编程】encodeURI和encodeURIComponent的区别

一、encodeURI encodeURI函数主要用于编码整个URL。当URL中包含非ASCII字符、空格或其他在URL中有特殊意义的字符时&#xff0c;可以使用encodeURI进行编码。下面是一个使用encodeURI的例子&#xff1a; // 假设有一个URL var url "https://www.example.com/index.html?…

Oracle控制文件管理

控制文件作用&#xff1a;记录了数据库的结构和行为&#xff0c;有多少个数据文件&#xff0c;日志文件及其位置名称&#xff0c;状态&#xff0c;维护数据库的一致性&#xff0c;即记录了数据库的启动SCN号和终止SCN号。 控制文件的位置和个数记录在参数文件中&#xff0c;通…

C语言什么是局部变量?

一、问题 C程序中的变量有局部变量和全局变量&#xff0c;那么什么是局部变量呢&#xff1f; 二、解答 局部变量也称为内部变量&#xff0c;即在函数内部定义的变量。它只在本函数范围内有效&#xff0c;在函数外是不能使⽤该变量的。例如&#xff1a; int f1(int a) {int b,…

Android 窗口那些事儿

目录 1. &#x1f4c2; 前言 你&#xff0c;是否有过这些疑问&#xff1f; 2. &#x1f531; Window 2.1 认识 Window 的几个阶段 1&#xff09;阶段一&#xff1a;Window 约等于 Activity 2&#xff09;阶段二&#xff1a;Window 约等于 View 3&#xff09;阶段三&…

基于深度学习的危险物品检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要&#xff1a;本文详细介绍基于YOLOv8/v7/v6/v5的危险物品检测技术。主要采用YOLOv8技术并整合了YOLOv7、YOLOv6、YOLOv5的算法&#xff0c;进行了细致的性能指标对比分析。博客详细介绍了国内外在危险物品检测方面的研究现状、数据集处理方法、算法原理、模型构建与训练代码…

Git 实战教程

Git 是一款强大的分布式版本控制系统&#xff0c;广泛用于团队协作与项目管理。本文将为你提供一份 Git 的实战教程&#xff0c;通过实例演示 Git 的基本用法和高级特性&#xff0c;帮助你快速上手 Git。 一、Git 基础 安装 Git 首先&#xff0c;你需要在你的计算机上安装 G…

保健品wordpress外贸模板

保健品wordpress外贸模板 健康保养保健品wordpress外贸模板&#xff0c;做大健康行业的企业官方网站模板。 https://www.jianzhanpress.com/?p3514

蓝桥杯刷题第八天(dp专题)

这道题有点像小学奥数题&#xff0c;解题的关键主要是&#xff1a; 有2种走法固走到第i级阶梯&#xff0c;可以通过计算走到第i-1级和第i-2级的走法和&#xff0c;可以初始化走到第1级楼梯和走到第2级楼梯。分别为f[1]1;f[2]1(11)1(2)2.然后就可以循环遍历到后面的状态。 f[i…