做网站的代码,邢台搜,网页制作与网站建设实战教程视频教程,安庆市住房和城乡建设局网站首页背景
用得非常多的一个分页实体对象
说明
只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用.
分页实体
Data
public class PageEntityT {/*** 分页后的结…背景
用得非常多的一个分页实体对象
说明
只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用. 只是一种抽象的思路, 可能不一定能够直接使用, 慎用.
分页实体
Data
public class PageEntityT {/*** 分页后的结果*/private ListT entityList;/*** 总计行数*/private long totalSize;/*** 有参构造** param entityList 数据集合* param totalSize 总数*/public PageEntity(ListT entityList, long totalSize) {this.entityList entityList;this.totalSize totalSize;}/*** 带分页参数的PageEntity构造器** param entityList 待分页数据* param offset 偏移量* param rows 页大小*/public PageEntity(ListT entityList, int offset, int rows) {offset Math.max(offset, 0);rows Math.min(rows, entityList.size());this.entityList entityList.stream().skip(offset).limit(rows).collect(Collectors.toList());this.totalSize entityList.size();}/*** 无参构造*/public PageEntity() {this.entityList new ArrayList();this.totalSize 0;}/*** 基于内存的分页** param entityList 带分页的集合* param pageSize 页容量* param currnetPage 当前页* return 分页后的实体对象* param T 对象实体泛型*/public static T PageEntityT page(ListT entityList, int pageSize, int currnetPage) {if (pageSize 1 || currnetPage 1) {throw new IllegalArgumentException(currentPage or pageSize cant less than 1);}// 分页int beginIndex (currnetPage - 1) * pageSize;int totalSize entityList.size();if (beginIndex 0) {beginIndex 0;} else if (beginIndex totalSize) {// 规避如下情况: 一开始有那么多数据, 在用户正在查看的时候正好没有了, 那么这时跳转到最后一页beginIndex (totalSize - pageSize 0 ? (totalSize - totalSize % pageSize) : 0);}int endIndex Math.max(beginIndex pageSize, totalSize);// 防止 endIndex 过大变为负数endIndex Math.max(endIndex, 0);ListT data entityList.subList(beginIndex, endIndex);return new PageEntity(data, totalSize);}
}