项目中,不是所有的业务场景都可以使用数据库的分页可以解决的,所以使用到了假分页。简单做了一个,方便以后参考。
/** * Copyright (C) 2019 Joiner Inc. All rights reserved. * 根据全量数据,内存中分页 * @author Joiner Created on 2019/10/28 16:29 * @version 1.0 */ public class PageUtil { /** * 在内存中分页 * @param currentPage * @param pageSize * @param datas * @return */ public static Result page(int currentPage, int pageSize, List<?> datas){ // 1.计算请求的页数 int total = 0; Page page = new Page(); List<Object> listData = new ArrayList<>(); if (datas!=null) { total=datas.size(); int startRow = 0; int endRow = 0; if (total != 0) { startRow = (currentPage - 1) * pageSize + 1; endRow = currentPage * pageSize; if (endRow > total) { endRow = total; } for (int i = startRow - 1; i < endRow; i++) { listData.add(datas.get(i)); } } } page.setResult(listData); page.setCurrentPage(currentPage); page.setPageSize(pageSize); page.setTotal(Long.valueOf(total)); Result result = Result.of().appendPage(page); return result; }