当前位置: 首页 > news >正文

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();
}

相关文章:

  • 网站建设类书籍李勇seo博客
  • 宁波网站建设设计公司排名实时热点新闻
  • 网站管理员权限怎么设置seo描述快速排名
  • 网站做推广 建设哪种类型合适关键词在线优化
  • 教育网页设计网站陕西百度推广的代理商
  • 网站留言评论功能免费刷seo
  • Modern C++(五)初始化
  • 为什么晶振电路要并联1MΩ电阻?为什么有的并联了,有的又没有?
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio搭建Chatbox AI聊天助手
  • 当 GitLab 服务器网络配置发生变化,如何修改
  • 基于python机器学习来预测含MLP决策树LGBM随机森林XGBoost等
  • ArkUI-X与Android联动编译开发指南
  • C++ 学习 C++独有的核心特性 2025年6月16日18:11:04
  • 什么是FlinkSQL中的时态表?以及怎么使用?
  • 智能制造——解读117页大型制造型集团五年发展战略规划项目规划方案【附全文阅读】
  • window显示驱动开发—渲染管道
  • 输入网址到网页显示
  • 设计模式-开闭原则(Open/Closed Principle, OCP)
  • FastAPI:(1)并发async与await
  • 用Keil调试出现 “not in scope“ 问题解决
  • 时序数据库的起源与基础概念简介
  • 数据结构第八章(三)-选择排序
  • 如何用div手写一个富文本编辑器(contenteditable=“true“)
  • AT_abc410_f [ABC410F] Balanced Rectangles 题解
  • 远程桌面连接 - 允许电脑从网络外部访问计算机
  • 视频设备:直联正常,通过卫星无画面,因为延迟太大