package org.springblade.modules.parcel.util; import java.util.ArrayList; import java.util.List; public class PageList { /** * 分页 * * @param list 集合 * @param pageNum 页码 * @param pageSize 页码数量 * @param 泛型 * @return 返回当前页数据 */ public static List getListPaging(List list, int pageNum, int pageSize) { if (list == null || list.size() <= 0) { return new ArrayList<>(0); } //开始下标 int startIndex = (pageNum - 1) * pageSize; //结束下标 subList()方法不包含结束下标的元素 int endIndex = pageNum * pageSize; //list总条数 int total = list.size(); //总页数 int pageCount = 0; //通过取余决定是否给总页数加1 int num = total % pageSize; if (num == 0) { pageCount = total / pageSize; } else { pageCount = total / pageSize + 1; } //如果当前页是最后一页的话 要包含集合的最后一条数据,因为sublist方法本身结束的下标是不包含当前元素的 if (pageNum == pageCount) { endIndex = total; } return list.subList(startIndex, endIndex); } }