/** * 获取总页数 * @param listSize list * @param size 页大小 * @return */ public static int totalPage(Integer listSize, Integer size){ int page = listSize/size; if(listSize%size>0){ page += 1; } return page; } /** * 分页获取list * @param list list * @param size 页大小 * @param currentPage 页码 * @return */ public static List listPage(List list, int size, int currentPage){ /** * 0,当前页大于总页码,直接返回 * 1,总共就一页:第一页总条数不足页大小,需要截取 * 2,最后一页:总条数不足页大小,需要截取 */ int listSize = list.size(); int page = totalPage(listSize, size); if(currentPage > page){ return null; } if(page == 1 && listSize < size){ return list.subList(0, listSize); } int index = (currentPage - 1) * size; if(page > 1 && page == currentPage && (listSize - index) < size){ return list.subList(index, (listSize - index + index)); } return list.subList(index, index + size); }