需求
对接地方平台的时候对方只提供查询所有数据的接口,但是页面展示的时候需要返回PageInfo进行分页
解决思路
刚好Stream里面包含limit 以及skip函数
kip表示跳过多少条数据
limit表示截取多少条数据
代码部分
import com.github.pagehelper.PageInfo;
import java.util.List;
import java.util.stream.Collectors;
/**
* 描述:
*
* @author ppliu
* created in 2020/5/11 14:39
*/
public class PageUtil {
/**
* 列表转换为分页.
*
* @param recordList 分页前的列表.
* @param page 第几页.
* @param pagesize 每页显示几条/
* @param <T> 对象类类型.
* @return 分页信息.
*/
public static <T> PageInfo<T> listToPage(List<T> recordList, int page, int pagesize) {
int total = recordList.size();
List<T> pageList = recordList.stream().skip((page - 1) * pagesize).limit(pagesize).collect(Collectors.toList());
PageInfo<T> pageInfo = new PageInfo<>(pageList);
pageInfo.setPageNum(page);
pageInfo.setPageSize(pagesize);
pageInfo.setPageSize(pagesize);
pageInfo.setPages(total / pagesize + 1);
pageInfo.setTotal(total);
return pageInfo;
}
}