用java实现的通用内存分页函数

来源:互联网 发布:假面骑士腰带淘宝 编辑:程序博客网 时间:2024/06/18 13:01

经常需要用到在内存中进行分页处理,今天写了一个存起来,方便以后直接使用,不用再写了。

public <T> Map<String, Object> getPagingResultMap(List<T> list, Integer currPageNo, Integer pageSize) {    Map<String, Object> retMap = new HashMap<>();    if (list.isEmpty()) {        retMap.put("result", Collections.emptyList());        retMap.put("pageNo", 0);        retMap.put("pageRowNum", 0);        retMap.put("totalRowNum", 0);        retMap.put("totalPageNum", 0);        return retMap;    }    int totalRowNum = list.size();    int totalPageNum = (totalRowNum - 1) / pageSize + 1;    int realPageNo = currPageNo;    if (currPageNo > totalPageNum) {        realPageNo = totalPageNum;    } else if (currPageNo < 1) {        realPageNo = 1;    }    int fromIdx = (realPageNo - 1) * pageSize;    int toIdx = totalPageNum * pageSize > totalRowNum ? totalRowNum : realPageNo * pageSize;    List<T> result = list.subList(fromIdx, toIdx);    retMap.put("result", result);    retMap.put("pageNo", realPageNo);    retMap.put("pageRowNum", result.size());    retMap.put("totalRowNum", totalRowNum);    retMap.put("totalPageNum", totalPageNum);    return retMap;}