java手动分页工具类
开发中,碰到了一些奇葩的业务逻辑,无法使用框架自身的分页功能,想了很久最后还是决定自己手写一个分页工具类,以备后续参考和使用,下面直接上代码,
/*** 手动分页类* @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手动分页工具类相关推荐
- java ajax翻页_分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] htt ...
- java分页的工具类,java分页工具类
PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...
- Java Web的分页工具类
最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: Pa ...
- ssm整合oracle分页,java实现ssm分页工具类及其使用方法
分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...
- PageUtils后端常用分页工具类
工具类代码 package com.john.test.utils;import java.util.List;/*** @Author jiang* @Version 1.0* 分页工具类*/ pu ...
- Java封装OkHttp3工具类
点击关注公众号,Java干货及时送达 作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...
- UrlUtils工具类,Java URL工具类,Java URL链接工具类
UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...
- java轻量级并行工具类_16 个超级实用的 Java 工具类
原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...
- java时间日期工具类_java日期处理工具类
java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...
最新文章
- 程序员,假如生活欺骗了你
- P1634 禽兽的传染病
- 安全的 ActiveMQ
- python文件操作与路径
- 如何打造一款出色的APP
- L. Mod(预处理+分块)
- 自动化测试框架:没有Surprise的原因
- mysql创建表的时候日期给个默认值_mysql 创建表时 日期字段默认值为当前时间...
- linux sata raid,linux – 两个SIL RAID卡的SATA驱动器问题
- 小程序 实名信息_微信小程序+商城信息管理系统
- LeetCode刷题(46)--Search in Rotated Array
- css sprites原理,[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?
- java多线程按行读取文件_“java”中多线程按行读取txt且每个线程读的内容不能重复,这么求“demo”?...
- 如何解决“呈现控件时出错”的问题(转)
- apk安装到电视上看不到图标_零基础搭建电视直播APP平台第二弹(修改APP)
- transition animation
- MongoDB学习(黑马教程)-5-数据库MongoDB的验证
- JVM垃圾回收机制,万字详解
- 计算机科学美国大学专业,最新!2019年USNews美国大学计算机专业排名
- STM8S003FP6 TIM4配置
热门文章
- 如何方便快速在指定文件夹打开命令行
- 服务端I/O性能:Node、PHP、Java、Go的对比
- 美国国土安全部发布物联网安全最佳实践
- 《音乐达人秀:Adobe Audition CC实战222例》——1.3 数字录音记录生活越来越便捷...
- linux服务器,ping没问题,http请求经常超时、时好时坏的解决办法
- APUE读书笔记-09进程关系(07)
- 我提交的一个内核补丁—CFS的child-runs-first
- 一道NP中的EIGRP拓扑表的题
- Cisco ××× troubleshooting
- 50元打造双网卡负载均衡服务器