import lombok.Data; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; @Data public class PageUtils implements Serializable { private static final long serialVersionUID = 1L; /** * 总记录数 */ private int totalCount; /** * 每页记录数 */ private int pageSize; /** * 总页数 */ private int totalPage; /** * 当前页数 */ private int currPage; /** * 列表数据 */ private List<?> list; /** * 分页 * @param list 列表数据 * @param totalCount 总记录数 * @param pageSize 每页记录数 * @param currPage 当前页数 */ public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) { this.list = list; this.totalCount = totalCount; this.pageSize = pageSize; this.currPage = currPage; this.totalPage = (int)Math.ceil((double)totalCount/pageSize); } // 列表直接分页 public static List<Map<String, Object>> pageBySubList(List list, int pagesize, int currentPage) { int totalcount = list.size(); int pagecount = 0; List<Map<String, Object>> subList=new ArrayList<>(); int m = totalcount % pagesize; if (m > 0) { pagecount = totalcount / pagesize + 1; } else { pagecount = totalcount / pagesize; } if(((currentPage - 1) * pagesize )>=totalcount){ return subList; } if (m == 0) { subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage) > totalcount ? totalcount-1 : pagesize * (currentPage)); } else { if (currentPage == pagecount) { subList = list.subList((currentPage - 1) * pagesize, totalcount); } else { subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage) > totalcount ? totalcount-1 : pagesize * (currentPage)); } } return subList; } }
原文:https://www.cnblogs.com/mikuriya/p/14447683.html