开发中,碰到了一些奇葩的业务逻辑,无法使用框架自身的分页功能,想了很久最后还是决定自己手写一个分页工具类,以备后续参考和使用,下面直接上代码,

/*** 手动分页类* @param datas* @param pageSize* @param pageNo* @param <T>* @return*/public static <T> List<T> getPageSizeDataForRelations(List<T> datas,int pageSize,int pageNo){int startNum = (pageNo-1)* pageSize+1 ;                     //起始截取数据位置if(startNum > datas.size()){return null;}List<T> res = new ArrayList<>();int rum = datas.size() - startNum;if(rum < 0){return null;}if(rum == 0){                                               //说明正好是最后一个了int index = datas.size() -1;res.add(datas.get(index));return res;}if(rum / pageSize >= 1){                                    //剩下的数据还够1页,返回整页的数据for(int i=startNum;i<startNum + pageSize;i++){          //截取从startNum开始的数据res.add(datas.get(i-1));}return res;}else if((rum / pageSize == 0) && rum > 0){                 //不够一页,直接返回剩下数据for(int j = startNum ;j<=datas.size();j++){res.add(datas.get(j-1));}return res;}else{return null;}}

下面写个测试方法验证一下,

public static void main(String[] args) {List<String> datas = new ArrayList<>();datas.add("user1");datas.add("user2");datas.add("user3");datas.add("user4");datas.add("user5");datas.add("user6");datas.add("user7");datas.add("user8");datas.add("user9");datas.add("user10");datas.add("user11");datas.add("user12");datas.add("user13");int pageSize = 5;int pageNo = 1;List<String> res = getPageSizeDataForRelations(datas,pageSize,pageNo);for(String one : res){System.out.println(one);}}

运行一下,下面是打印结果:

再换一组参数,

public static void main(String[] args) {List<String> datas = new ArrayList<>();datas.add("user1");datas.add("user2");datas.add("user3");datas.add("user4");datas.add("user5");datas.add("user6");datas.add("user7");datas.add("user8");datas.add("user9");datas.add("user10");datas.add("user11");datas.add("user12");datas.add("user13");int pageSize = 5;int pageNo = 3;List<String> res = getPageSizeDataForRelations(datas,pageSize,pageNo);for(String one : res){System.out.println(one);}}

下面是运行的结果:

通过结果可以看到,得到了我们预期的分页效果!

java手动分页工具类相关推荐

  1. java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

    [博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...

  2. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

  3. Java Web的分页工具类

    最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: Pa ...

  4. ssm整合oracle分页,java实现ssm分页工具类及其使用方法

    分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...

  5. PageUtils后端常用分页工具类

    工具类代码 package com.john.test.utils;import java.util.List;/*** @Author jiang* @Version 1.0* 分页工具类*/ pu ...

  6. Java封装OkHttp3工具类

    点击关注公众号,Java干货及时送达  作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...

  7. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  8. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  9. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

最新文章

  1. 程序员,假如生活欺骗了你
  2. P1634 禽兽的传染病
  3. 安全的 ActiveMQ
  4. python文件操作与路径
  5. 如何打造一款出色的APP
  6. L. Mod(预处理+分块)
  7. 自动化测试框架:没有Surprise的原因
  8. mysql创建表的时候日期给个默认值_mysql 创建表时 日期字段默认值为当前时间...
  9. linux sata raid,linux – 两个SIL RAID卡的SATA驱动器问题
  10. 小程序 实名信息_微信小程序+商城信息管理系统
  11. LeetCode刷题(46)--Search in Rotated Array
  12. css sprites原理,[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?
  13. java多线程按行读取文件_“java”中多线程按行读取txt且每个线程读的内容不能重复,这么求“demo”?...
  14. 如何解决“呈现控件时出错”的问题(转)
  15. apk安装到电视上看不到图标_零基础搭建电视直播APP平台第二弹(修改APP)
  16. transition animation
  17. MongoDB学习(黑马教程)-5-数据库MongoDB的验证
  18. JVM垃圾回收机制,万字详解
  19. 计算机科学美国大学专业,最新!2019年USNews美国大学计算机专业排名
  20. STM8S003FP6 TIM4配置

热门文章

  1. 如何方便快速在指定文件夹打开命令行
  2. 服务端I/O性能:Node、PHP、Java、Go的对比
  3. 美国国土安全部发布物联网安全最佳实践
  4. 《音乐达人秀:Adobe Audition CC实战222例》——1.3 数字录音记录生活越来越便捷...
  5. linux服务器,ping没问题,http请求经常超时、时好时坏的解决办法
  6. APUE读书笔记-09进程关系(07)
  7. 我提交的一个内核补丁—CFS的child-runs-first
  8. 一道NP中的EIGRP拓扑表的题
  9. Cisco ××× troubleshooting
  10. 50元打造双网卡负载均衡服务器