package com.xxx.xxx.util;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageInfo;
import com.zhdgps.cloud.common.vo.Paging;
import java.util.*;
public class PageHelperUtil {
/**
* 分页方法
* @param data
* @param paging
* @param <T>
* @return
*/
public static <T> PageInfo<T> pageCache(List<T> data, Paging paging) {
//要处理为空的时候的情况
if (CollUtil.isEmpty(data)) {
PageInfo<T> objectPageInfo = new PageInfo<>();
objectPageInfo.setPageSize(paging.getPageSize());
objectPageInfo.setTotal(0);
objectPageInfo.setPages(1);
objectPageInfo.setPageNum(paging.getPageNum());
objectPageInfo.setList(Collections.emptyList());
return objectPageInfo;
}
PageInfo<T> pageInfo = new PageInfo<>(data);
List<T> temps = new ArrayList<>();
int pageNum = paging.getPageNum();
Map<Integer, List<T>> map = new HashMap<>();
int index = 1;
for (int i = 0; i < data.size(); i++) {
temps.add(data.get(i));
if ((i + 1) % paging.getPageSize() == 0) {
map.put(index++, temps);
temps = new ArrayList<>();
}
if (i == (data.size() - 1)) {
map.put(index, temps);
}
}
if (map.get(pageNum).size() == 0) {
pageInfo.setPageSize(paging.getPageSize());
pageInfo.setTotal(data.size());
pageInfo.setPages(--index);
pageInfo.setPageNum(--pageNum);
pageInfo.setList(map.get(pageNum));
} else {
pageInfo.setPageSize(paging.getPageSize());
pageInfo.setTotal(data.size());
pageInfo.setPages(index);
pageInfo.setPageNum(pageNum);
pageInfo.setList(map.get(pageNum));
}
return pageInfo;
}
}
java 内存分页
最新推荐文章于 2024-04-26 11:11:31 发布