欧美男女直接做的视频网站,广告投放跟网站建设一样吗,开发公司和物业公司,广西住房与建设厅网站前言
在日常的开发工作中#xff0c;会遇到很多不确定的需求场景#xff0c;无法使用第三方提供的分页组件来实现#xff0c;那么如何自己实现一个简单的分页工具类呢#xff1f;
工具类
第一版本#xff1a;
Setter
Getter
public class PageToolT {/*** 当前…前言
在日常的开发工作中会遇到很多不确定的需求场景无法使用第三方提供的分页组件来实现那么如何自己实现一个简单的分页工具类呢
工具类
第一版本
Setter
Getter
public class PageToolT {/*** 当前页数*/private int pageNum;/*** 每页的记录条数*/private int pageSize;/*** 总记录数*/private int total;/*** 总页数*/private int pages;/*** 当前开始值*/private int start;/*** 总记录数*/private ListT list;public PageTool(ListT list) {this.total list.size();this.list list;}public void startPage(int pageNum, int pageSize) {// 1、获取总记录数和分页数this.pageNum pageNum;this.pageSize pageSize;this.pages total % pageSize 0 ?(total / pageSize) :(total / pageSize) 1;// 2、根据分页信息切割当前页数据int begin (pageNum - 1) * pageSize;int end pageNum * pageSize;// 判断list的大小是否在起始点的以上并且判断是否比end大if ( list.size() begin ) {if ( list.size() end ) {end list.size();}list list.subList(begin, end);}}
}在看到这些if-else判断和三目运算符瞬间想起来Math运算类貌似提供了一些比较大小的函数为何不使用一下呢于是乎我确定优化一下分页的方法
优化 Math.ceil() 向上取整来获取总页数 Math.min(获取最小值来判断截取数组的结束节点。 于是乎改造一下:
Setter
Getter
public class PageToolT {/*** 当前页数*/private int pageNum;/*** 每页的记录条数*/private int pageSize;/*** 总记录数*/private int total;/*** 总页数*/private int pages;/*** 当前开始值*/private int start;/*** 总记录数*/private ListT list;public PageTool(ListT list) {this.total list.size();this.list list;}public void startPage(int pageNum, int pageSize) {// 1、获取总记录数和分页数this.pageNum pageNum 0 ? pageNum : 10;this.pageSize pageSize 0 ? pageNum : 1;this.pages (int) Math.ceil( (double) this.total / pageSize);// 2、根据分页信息切割当前页数据int startIndex (pageNum - 1) * pageSize;int endIndex Math.min(pageNum * pageSize, list.size());list list.subList(startIndex, endIndex);}
}一个简单、人畜无害的工具类就诞生啦。