List集合分页处理的方法
参考https://www.cnblogs.com/cmz-32000/p/12186362.html
- 解决了数组越界问题
- 参数页码大于总页码时返回null(可根据自己业务调整为返回最后一页数据)
- subList起始index或结束index大于总记录数返回null(可根据自己业务调整为返回最后一页数据)
package com.biyao.scm.approve.common.utils; import java.util.ArrayList;
import java.util.List; /**
* 自定义List分页工具
*
* @author zhaoyapeng@idstaff.com
* @version 1.0.0 2022/2/14 16:28
*/
public class PageUtil { /**
* 开始分页
*
* @param list
* @param pageNum 页码
* @param pageSize 每页多少条数据
* @return
*/
public static List startPage(List list, int pageNum, int pageSize) {
if (list == null) {
return null;
}
if (list.size() == 0) {
return null;
} int count = list.size(); // 记录总数
int pageCount = 0; // 页数
if (count % pageSize == 0) {
pageCount = count / pageSize;
} else {
pageCount = count / pageSize + 1;
}
if (pageNum > pageCount) {
return null;
}
int fromIndex = 0; // 开始索引
int toIndex = 0; // 结束索引 if (pageNum != pageCount) {
fromIndex = (pageNum - 1) * pageSize;
toIndex = fromIndex + pageSize;
} else {
fromIndex = (pageNum - 1) * pageSize;
toIndex = count;
}
if (fromIndex > count || toIndex > count) {
return null;
}
return list.subList(fromIndex, toIndex);
}
}
List集合分页处理的方法的更多相关文章
- Mvc 分页栏扩展方法
using System; using System.Collections.Generic; using System.Reflection; using System.Text; using Sy ...
- MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法
在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应 ...
- Java进阶(二十四)Java List集合add与set方法原理简介
Java List集合add与set方法原理简介 add方法 add方法用于向集合列表中添加对象. 语法1 用于在列表的尾部插入指定元素.如果List集合对象由于调用add方法而发生更改,则返回 tr ...
- [javaSE] 集合框架(共性方法)
Collection接口的常用方法 add(),添加一个元素 addAll(),添加一组元素 clear(),清空 remove(),移除一个 removeAll(),移除一组 size(),元素个数 ...
- easyui分页的使用方法
使用: $("#tt").datagrid("getPager").pagination(option); 例子: $("#tb").dat ...
- Java遍历List集合的三种方法
Java遍历List集合的三种方法 List<String> list = new ArrayList<String>(); list.add("aaa") ...
- JDBC使用游标实现分页查询的方法
本文实例讲述了JDBC使用游标实现分页查询的方法.分享给大家供大家参考,具体如下: /** * 一次只从数据库中查询最大maxCount条记录 * @param sql 传入的sql语句 * @par ...
- day07-列表类型/元组类型/字典类型/集合类型内置方法
目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...
- thinkphp方便分页的page方法
page方法也是模型的连贯操作方法之一,是完全为分页查询而诞生的一个人性化操作方法. 用法 我们在前面已经了解了关于limit方法用于分页查询的情况,而page方法则是更人性化的进行分页查询的方法,例 ...
- day09-2 字典,集合的内置方法
目录 字典的内置方法 作用 定义方式 方法 优先掌握 需要掌握 存储一个值or多个值 有序or无序 可变or不可变 集合的内置方法 作用 定义方式 方法 存储一个值or多个值 有序or无序 可变or不 ...
随机推荐
- 微信小游戏直播在Android端的跨进程渲染推流实践
本文由微信开发团队工程师"virwu"分享. 1.引言 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳.欢乐斗地主等),在右上角菜单就可以看 ...
- 神仙打架的一期「GitHub 热点速览」
由于上周出月刊「GitHub 热点速览」断更了一期,本期攒了两周的热门开源项目,真可谓是神仙打架! 这两天开源的大模型 DeepSeek-V3 凭借极低的训练成本和出色的评测表现,迅速出圈.开源仅 5 ...
- 收藏几个常用的vue自定义组件,抄自 他人,以防丢失
在 Vue,除了核心功能默认内置的指令 ( v-model 和 v-show ),Vue 也允许注册自定义指令.它的作用价值在于当开发人员在某些场景下需要对普通 DOM 元素进行操作. Vue自定义指 ...
- (二).NET6.0使用Filter过滤器
1.创建一个webapi方法 2.创建过滤器,继承自Attribute, IAsyncActionFilter 不存在需要先手动引用有关的包:Microsoft.AspNetCore.Mvc 继承 A ...
- 一种调试 线段树 / Treap / Splay / 左偏树 / LCT 等树形结构的技巧
前言 如果我们需要观察程序运行过程中,某一个变量.某一个序列的变化情况,你可以在修改的地方打断点 debug,或者直接在需要的地方输出就行了. 但是对于一些树形结构,我们不好将其直观地呈现出来,常常只 ...
- 简单了解RPC实现原理-copy
核心框架类 /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and pr ...
- Mysql存储引擎Innodb和MyISAM的区别
一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...
- Redis常用命令手册
http://c.biancheng.net/redis_command/ Redis客户端(client)命令 Redis 提供了一些操作客户端(client)的命令,比如查询所有已连接到服务器的客 ...
- weixueyuan-Nginx缓存6
https://www.weixueyuan.net/nginx/cache/ Nginx Web缓存配置 Web 缓存可节约网络带宽,有效提高用户打开网站的速度.由于应用服务器被请求次数的降低,也相 ...
- idea+maven打包.jar发布项目
开发完项目后,idea+maven环境打包成.jar包,才能发布项目.下面记录常用的几种打包方式. 一,通过mvn命令打包 比较专业的用法是通过mvn命令打包: mvn clean package - ...