网站看到别人写的,拿来没有办法用,我就自己写了一个,大家要是使用的过程中有什么问题,欢迎随时交流。
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.ArrayList;
import java.util.List;
/**
* 创建人:sunpeng
* V1.0 2020/8/10 0010 sunpeng
*/
public class PageUtil {
/***
* 手动分页
* @return
*/
public static <T> Page<T> getPageByHand(List<T> datas, int pageNum, int pageSize) {
if (datas.isEmpty()) {
return new Page<T>();
}
List<T> resList = new ArrayList<>();
Page<T> page = new Page<>(pageNum, pageSize);
// 总页数
page.setTotal(datas.size());
// 计算分页数据
int startIndex = (pageNum - 1) * pageSize;
if (startIndex > datas.size()) {
// 起始位置超出列表条数
return page;
}
// 剩余可分页条数
int remainNum = datas.size() - startIndex;
if (remainNum > pageSize) {
// 剩余条数大于每页条数,直接截取pageSize条数的数据返回
for (int i = 0; i < pageSize; i++) {
resList.add(datas.get(startIndex + i));
}
page.setRecords(resList);
} else {
// 剩余条数不够完整的一页,将剩余条数直接返回
for (int i = startIndex; i < datas.size(); i++) {
resList.add(datas.get(i));
}
page.setRecords(resList);
}
return page;
}
/**
* 测试方法
*/
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("11");
list.add("12");
list.add("13");
list.add("14");
list.add("15");
list.add("16");
list.add("17");
list.add("18");
list.add("19");
list.add("20");
list.add("21");
list.add("22");
list.add("23");
list.add("24");
list.add("25");
list.add("26");
Page<String> page = getPageByHand(list, 8, 10);
System.out.println(page.getTotal());
System.out.println(page.getCurrent());
System.out.println(page.getSize());
System.out.println(page.getRecords().toString());
}
}