将List进行分页
程序员文章站
2022-06-21 17:44:31
...
前言
最近决定将工作中遇到的一部分问题的解决方案更新到博客中
将List进行分页
这是一个简单的将List中的数据进行分页处理截取需要得到的部分数据
import io.swagger.annotations.Api;
import java.util.LinkedList;
import java.util.List;
/**
* @Author: tmac
* @Date: Created in 9:19 2019/9/29
*/
@Api("将list进行分页")
public class ListToPageUtil {
/**
* 将list分页
* @param pageNum
* @param pageSize
* @param list
* @return
*/
public static List listToPage(int pageNum, int pageSize, List list){
int limit = (pageNum-1)*pageSize;
int size = list.size();
int totalPage = getTotalPage(pageSize,size);
if(pageNum > totalPage){
System.out.println("页数超出了");
throw new RuntimeException("页数超出了");
}
List<Integer> subList = null;
if(pageNum == totalPage){
System.out.println("最后一页");
subList = list.subList(limit, size);
}else{
int end= limit + pageSize;
System.out.println("截取的最后的下标 = " + end);
subList = list.subList(limit, end);
}
return subList;
}
/**
* 根据总条数获取总页数
* @param pageSize
* @param totalSize
* @return
*/
public static int getTotalPage(int pageSize,int totalSize){
int totalPage = 0;
if(totalSize % pageSize == 0){
totalPage = totalSize / pageSize;
}else{
totalPage = totalSize / pageSize+1;
}
return totalPage;
}
public static void main(String[] args) {
List<Integer> list = new LinkedList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
int pageNum = 2;
int pageSize = 2;
int totalPage = getTotalPage(pageNum, list.size());
System.out.println("总页数:" + totalPage);
List page = listToPage(pageNum, pageSize, list);
System.out.println("page = " + page);
}
}
控制台输出
总页数:3
截取的最后的下标 = 4
page = [3, 4]
人生中第一篇博客,工作中还有很多的路要走。
上一篇: QT5实现UDP通信的示例代码