因项目需要,需要对List做分页处理,没有找到合适的工具类所以就自己写了一个,记录一下。
public class PageUtil { public static <T> Page<T> toPage(List<T> list, PageRequest pageRequest){ int allSize = list.size(); int startIndex = 0; int dataSize = 0; int end = 0; if((int)pageRequest.getCurrent() * pageRequest.getSize() > list.size()){//最后一页 dataSize = list.size() - list.size() % 10; end = list.size(); }else{ startIndex = (int) (pageRequest.getCurrent() * pageRequest.getSize()); dataSize = startIndex - 9 ; end = startIndex+1; } List<T> listResult = list.subList(dataSize, end);//获取指定页的数据 Page<T> pageResponse = new Page<>(); pageResponse.setSize(pageRequest.getSize()); pageResponse.setCurrent(pageRequest.getCurrent()); pageResponse.setTotal(allSize); pageResponse.setRecords(listResult); return pageResponse; } }
@Data public class PageRequest { /** * 每页的大小 */ private long size; /** * 当前是第几页 */ private long current; }