java 基础方法 list分页

新增一个list 泛型分类方法

  hutools没这个方法, mybatis 里面的方法不好用

 故新增此方法

package com.common.base.util.page;import lombok.Data;import java.util.List;/*** @className: VoPage* @description: list分页* @author: chenyuanlong* @date: 2025年6月16日 0016 上午 11:24:41**/
@Data
public class VoPage<T>{private Integer pageAll;private Integer pageSize;private List<VoPageOne<T>>  pageDatas;
}

package com.common.base.util.page;import lombok.Data;import java.util.List;/*** @className: VoPageOne* @description: 每页* @author: chenyuanlong* @date: 2025年6月16日 0016 上午 11:28:41**/
@Data
public class VoPageOne<T> {private Integer pageCur;private List<T> pageDatas;}

package com.common.base.util.page;import com.common.base.util.json.UtilJsonFast;
import com.common.base.util.number.UtilBigDecimal;import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;/*** 分页计算  list分批返回* @author chenyuanlong* @date 2024/9/13 11:18*/
public class UtilPageList<T> {/*** list 分页返回* @param allDatas* @return*/public  VoPage<T> listPage(List<T> allDatas, Integer pageSize){VoPage<T> re=new VoPage<>();List<VoPageOne<T>>  pageDatas=new ArrayList<>();// 总页数int pageAll= UtilBigDecimal.divideROUND_UP(new BigDecimal(allDatas.size()),new BigDecimal(pageSize));re.setPageAll(pageAll);re.setPageSize(pageSize);// 遍历设置每页for(int thisPage=0;thisPage<pageAll;thisPage++){VoPageOne voPageOne=new VoPageOne();voPageOne.setPageCur(thisPage+1);List<T> voPageThis=new ArrayList<>();for(int j=0;j<pageSize;j++){int posi=thisPage*pageSize+j;if(posi<allDatas.size()){T dataOne=allDatas.get(posi);voPageThis.add(dataOne);}}voPageOne.setPageDatas(voPageThis);pageDatas.add(voPageOne);}re.setPageDatas(pageDatas);return re;}}

测试此方法

package page;import cn.hutool.core.util.PageUtil;
import com.common.base.util.page.UtilPageList;
import com.common.base.util.page.VoPage;
import lombok.Data;import java.util.ArrayList;
import java.util.List;/*** @className: VoPageTest* @description: 分页测试* @author: chenyuanlong* @date: 2025年6月16日 0016 下午 01:22:22**/
@Data
public class VoPageTest {private String pId;private String pName;/*** 测试分页类*/public static void pTest(){List<VoPageTest>  allDatas=new ArrayList<>();VoPageTest voPageTest1=new VoPageTest();voPageTest1.setPId("001");voPageTest1.setPName("1号位置");allDatas.add(voPageTest1);VoPageTest voPageTest2=new VoPageTest();voPageTest2.setPId("002");voPageTest2.setPName("2号位置");allDatas.add(voPageTest2);VoPageTest voPageTest3=new VoPageTest();voPageTest3.setPId("003");voPageTest3.setPName("3号位置");allDatas.add(voPageTest3);VoPageTest voPageTest4=new VoPageTest();voPageTest4.setPId("004");voPageTest4.setPName("4号位置");allDatas.add(voPageTest4);VoPageTest voPageTest5=new VoPageTest();voPageTest5.setPId("005");voPageTest5.setPName("5号位置");allDatas.add(voPageTest5);VoPage<VoPageTest> re=new UtilPageList<VoPageTest>().listPage(allDatas,2);System.out.println(re);}public static void main(String[] args) {VoPageTest.pTest();}
}

用到的工具类里面的方法

/*** 相除,结果保留整数部分(整型)* @param divided  被除数* @param divide   除数* @return 相除后的结果*/
public static int divideROUND_UP(BigDecimal divided, BigDecimal divide) {return divided.divide(divide, 0, BigDecimal.ROUND_UP).intValue();
}

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

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

相关文章

操作系统期末复习--操作系统初识以及进程与线程

操作系统概念与主要功能 操作系统的概念 在信息化时代&#xff0c;软件是计算机系统的灵魂&#xff0c;而作为软件核心的操作系统&#xff0c;已与现代计算机系统密不可分、融为一体。计算机系统自下而上大致分为4部分&#xff1a;硬件、操作系统、应用程序和用户 操作系统管…

使用jhat查看dump.hprof文件内具体对象的属性值信息

jhat是JDK自带的堆转储分析工具&#xff0c;可以用来查看.hprof文件中对象的具体内容。本文演示使用的是JKD8. 一、启动jhat 执行启动命令。 jhat -J-Xmx4g your_heap_dump.hprof -J-Xmx4g表示为jhat分配4GB内存&#xff0c;根据你自己情况调整大小。your_heap_dump.hprof是…

freeRTOS之队列(queue)

一.概述 1.介绍 队列(queue)可以用于"任务到任务"、“任务到中断”、"中断到任务"直接传输信息。 2.核心功能 线程安全&#xff1a;自动处理多任务访问时的互斥问题。 数据复制&#xff1a;入队时复制数据&#xff08;而非引用&#xff09;&#xff0c;…

【python】typing用法

一、基础类型提示 1. 基本类型注解 # 变量类型注解 age: int 30 name: str "Alice" is_student: bool False height: float 1.752. 函数注解 def greet(name: str, age: int) -> str:return f"Hello {name}, you are {age} years old!"二、组合类…

web前端开发核心基础:Html结构分析,head,body,不同标签的作用

前端技术协同关系 协作流程&#xff1a;HTML构建页面框架—>css美化样式&#xff08;选择器属性&#xff09;—>JavaScript实现交互&#xff08;类似于python的脚本语言&#xff09;扩展基础&#xff1a;在上面三项基础上学习Vue\React、构建工具WePack和浏览器工作原理…

精益数据分析(105/126):移动应用核心指标解析与用户分层营收策略

精益数据分析&#xff08;105/126&#xff09;&#xff1a;移动应用核心指标解析与用户分层营收策略 在移动应用市场竞争白热化的今天&#xff0c;单纯追求下载量已无法保证商业成功&#xff0c;精细化运营核心指标成为盈利关键。本文将深入解析每日活跃用户平均营收&#xff…

被CC攻击了,对服务器有什么影响?

博客正文&#xff1a; 最近&#xff0c;不少网站管理员和运维人员反映遭遇了CC攻击&#xff0c;导致服务器性能异常甚至瘫痪。那么&#xff0c;CC攻击究竟会对服务器造成哪些影响&#xff1f;本文将为你简要解析CC攻击的原理及其带来的危害&#xff0c;帮助你更好地理解并应对…

Tensorflow安装出现dependency conflict错误

Python版本&#xff1a; 3.11.4 pip版本已升到最新 电脑上有mac的原装Python2.x&#xff0c;我装的3.11.4&#xff0c;还有个什么依赖的3.9 运行 pip3 install tensorflow 出现类似以下错误 &#xff08;我报错的是另一个不是tensorflow—estimator&#xff0c;但基本就是…

2025年HTTP半开与错误攻击防御指南:原理拆解与实战防护

你以为限流就能防住HTTP攻击&#xff1f;黑客用协议畸形包AI调度正在撕裂传统防线&#xff01; 一、HTTP半开攻击&#xff1a;慢速绞杀服务器资源 ▶ 攻击原理剖析 HTTP半开攻击&#xff08;如Slowloris&#xff09;是一种应用层DoS攻击&#xff0c;通过建立大量半开连接耗尽…

Mybatis(XML映射文件、动态SQL)

目录 基础操作 准备&#xff1a; 删除&#xff1a; 新增&#xff1a; 更新&#xff1a; 查询&#xff1a; 条件查询&#xff1a; XML映射文件 动态SQL if foreach sql&include 基础操作 准备&#xff1a; 准备数据库表 创建一个新的springboot工程&#xff0…

python校园拼团系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

多模态大语言模型arxiv论文略读(127)

When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ➡️ 论文标题&#xff1a;When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ➡️ 论文作者&#xff1a;Yuli Zhou, …

剑指offer32_二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列 输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则返回true&#xff0c;否则返回false。 假设输入的数组的任意两个数字都互不相同。 数据范围 数组长度 [ 0 , 1000 ] [0,1000] [0,1000]。 样例 输入&…

《仿盒马》app开发技术分享-- 订单结合优惠券结算(端云一体)

技术栈 Appgallery connect 开发准备 上一节我们已经实现了优惠券的选择&#xff0c;并且成功的把券后的价格也展示给用户&#xff0c;不能使用的优惠券我们也用友好的方式告知用户&#xff0c;这一节我们来实现优惠券内容的下一步&#xff0c;优惠券内容结合订单进行结算提…

Python+Selenium+Pytest+POM自动化测试框架封装

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、测试框架简介 1&#xff09;测试框架的优点 代码复用率高&#xff0c;如果不使用框架的话&#xff0c;代码会显得很冗余。可以组装日志、报告、邮件等一些…

宋代大模型:智能重构下的文明再发现

引言&#xff1a;当汴京城遇见生成式AI 一幅动态的《清明上河图》正通过全息投影技术演绎汴京城的市井百态。这个虚实交融的场景&#xff0c;恰似宋代大模型技术的隐喻——以人工智能为纽带&#xff0c;连接起东京梦华的繁盛图景与数字时代的文明重构。作为人工智能与历史学交…

K-means++:让K-means“聪明”地选择初始中心点

大家好&#xff01;欢迎来到我的技术分享博客~ &#x1f44b; 在前两篇博客中&#xff0c;我们深入探讨了经典的 K-means 算法 以及它的优化方案 Canopy K-means。如果你还没有看过&#xff0c;强烈建议先回顾一下&#xff0c;因为今天的主题 K-means 和它们有着千丝万缕的联系…

Langchain学习笔记(1)——如何调用Huggingface的模型并实现实时返回生成结果

Langchain支持很方便的OpenAI模型的调用&#xff0c;可以做到快速开发大模型应用。但是要使用Huggingface上的开源模型就没有那么方便了&#xff0c;本文就详细阐述如何用Langchain开发基于Huggingface上的模型&#xff0c;并实时返回生成结果。 实时返回生成结果是LLM很关键的…

Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)

靶场搭建 靶场下载 &#xff1a; https://github.com/whgojp/JavaSecLab这个靶场是使用Springboot搭建的所以不要下载 jar 文件运行&#xff0c;要使用IDEA运行他的文件夹 先打开pom 然后进行maven一下 改一下端口 配置完成之后修改一下 运行的模式 使用phpstudy搞一个sql数…

基于视频的 AI 内存库,极速语义检索

简介 在大模型应用里&#xff0c;将文本数据分块嵌入存储在向量数据库已经是标准做法。然而&#xff0c;传统向量数据库虽然功能强大&#xff0c;但其高昂的RAM和存储需求&#xff0c;以及复杂的部署运维&#xff0c;常常让开发者望而却步。今天&#xff0c;介绍一个名为 Memv…