代码&优雅着&生活

导航

假分页

项目中,不是所有的业务场景都可以使用数据库的分页可以解决的,所以使用到了假分页。简单做了一个,方便以后参考。

 

/**
 * 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;
    }

 

posted on 2020-03-05 17:15  幸运的凌人  阅读(389)  评论(0编辑  收藏  举报