当前位置:网站首页>对list集合进行分页,并将数据显示在页面中
对list集合进行分页,并将数据显示在页面中
2022-07-31 05:08:00 【小果子^_^】
工具类
工具类代码:
public class PageUtil {
/**
* 开始分页
* @param list
* @param pageNum 页码
* @param pageSize 每页多少条数据
* @return
*/
public static List startPage(List list, Integer pageNum,
Integer pageSize) {
if (list == null) {
return null;
}
if (list.size() == 0) {
return null;
}
Integer count = list.size(); // 记录总数
Integer pageCount = 0; // 页数
if (count % pageSize == 0) {
pageCount = count / pageSize;
} else {
pageCount = count / pageSize + 1;
}
int fromIndex = 0; // 开始索引
int toIndex = 0; // 结束索引
if (pageNum > pageCount){
return null;
}
if (pageNum != pageCount) {
System.out.println("pageNum====>"+pageNum);
fromIndex = (pageNum - 1) * pageSize;
System.out.println("fromindex===>"+fromIndex);
toIndex = fromIndex + pageSize;
} else {
System.out.println("from====>"+fromIndex);
fromIndex = (pageNum - 1) * pageSize;
toIndex = count;
}
List pageList = list.subList(fromIndex, toIndex);
return pageList;
}
}
在项目中的用法
从数据库中查出的数据集合:noGroup
List<Students> noGroup = studentsService.queryStudentNotInGroup(campusId, phone);
调用工具类的方法:
List<Students> page = PageUtil.startPage(noGroup,pageNum,pageSize);
总条数:
Integer count = noGroup.size();
总页码:
Integer totalPage = count % 10 == 0 ? count / 10 : count / 10 + 1;
map.put("totalPage", totalPage);
map.put("page", page);
已测试有效,希望可以帮到各位
**修改一下 :数据过多的话, if (pageNum != pageCount) 该行判断会报错,测试将!=修改为!equals---------> if (!pageNum.equals(pageCount)) **
修改:如果传入的页码大于总页码的话,会报错空指针异常,所以添加一个判断:
if (pageNum > pageCount){
return null;
}
注意:这种分页工具类只适用于少数据,对于上百万的数据,响应的时间就很长了,原因是对于集合先查出了所有的数据,然后再对所有的数据进行分页,如果上百万的数据的话,查询需要时间,所以响应很慢,更好的方法还在琢磨中,如您有更好的方法,麻烦提供一下
边栏推荐
- 110道 MySQL面试题及答案 (持续更新)
- Unity手机游戏性能优化系列:针对CPU端的性能调优
- [Linear Neural Network] softmax regression
- 【py脚本】批量二值化处理图像
- Temporal客户端模型
- Unity mobile game performance optimization series: performance tuning for the CPU side
- DVWA安装教程(懂你的不懂·详细)
- ES 源码 API调用链路源码分析
- MySQL8.0.26安装配置教程(windows 64位)
- Pytorch教程Introduction中的神经网络实现示例
猜你喜欢
![[C language] Detailed explanation of operators](/img/fa/dce3da39f19b51c6d1b682128da36b.png)
[C language] Detailed explanation of operators

mysql uses on duplicate key update to update data in batches

12个MySQL慢查询的原因分析

SQL row-column conversion

Centos7 install mysql5.7

Linux系统安装mysql(rpm方式安装)

CentOS7 install MySQL graphic detailed tutorial
![<urlopen error [Errno 11001] getaddrinfo failed>的解决、isinstance()函数初略介绍](/img/a4/8c75fab6a9858c5ddec25f6a8300fb.png)
<urlopen error [Errno 11001] getaddrinfo failed>的解决、isinstance()函数初略介绍

Numpy中np.meshgrid的简单用法示例

Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
随机推荐
Linux系统安装mysql(rpm方式安装)
matlab abel变换图片处理
ABC D - Distinct Trio (Number of k-tuples
1. 获取数据-requests.get()
View source and switch mirrors in two ways: npm and nrm
MySQL database installation (detailed)
MYSQL一站式学习,看完即学完
mysql5.7.35安装配置教程【超级详细安装教程】
MySQL_关于JSON数据的查询
益智类游戏关卡设计:逆推法--巧解益智类游戏关卡设计
Error EPERM operation not permitted, mkdir 'Dsoftwarenodejsnode_cache_cacach Two solutions
为什么要用Flink,怎么入门使用Flink?
矩池云快速安装torch-sparse、torch-geometric等包
Unity教程:URP渲染管线实战教程系列【1】
C Implementation of Simple Network File Copy
MySQL transaction isolation level, rounding
剑指offer专项突击版第15天
Typec手机有线网卡网线转网口转接口快充方案
MySQL事务隔离级别详解
ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution