import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.PageUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.ArrayList;
import java.util.List;
/**
-
-
分页工具类
-
@author lec
-
@date 2024/4/10
/
public class PageTest {
/*- 内存分页,hutool工具类相关
- @param list 数据
- @param pageNum 页码
- @param pageSize 每页条数
- @return com.baomidou.mybatisplus.core.metadata.IPage
- @author lec
- @date
*/
public static IPage<?> getPageDto(List<?> list, int pageNum, int pageSize){
//总页数
int pages = PageUtil.totalPage(list.size(), pageSize);
//开始位置和结束位置
int[] startEnd = PageUtil.transToStartEnd(pageNum-1, pageSize);
//分页后的结果集
List<?> pageList = null;
if (startEnd[1] < list.size()){
pageList = list.subList(startEnd[0], startEnd[1]);
}else {
pageList = list.subList(startEnd[0], list.size());
}
Page page = new Page();
page.setTotal(list.size());
page.setRecords(pageList);
page.setCurrent(pageNum);
page.setSize(pageSize);
page.setPages(pages);
return page;
}
public static void main(String[] args) {
ArrayList<String> list = CollUtil.newArrayList(); list.add("s"); list.add("s1"); list.add("s2"); IPage pageDto = getPageDto(list, 1, 2); System.out.println(JSON.toJSONString(pageDto)); // {"current":1,"hitCount":false,"optimizeCountSql":true,"orders":[], // "pages":2,"records":["s","s1"],"searchCount":true,"size":2,"total":3}
}
}