直接定义个工具类,代码如下:

  1. package com.jk51.modules.wechat.web.util;
  2.  
  3. import java.util.Collections;
  4. import java.util.List;
  5.  
  6. /**
  7. * 版权所有(C) 2018 * 作者: chen
  8. * 创建日期: 2018/6/20
  9. * 修改记录:
  10. */
  11. public class ListPageUtil<T> {
  12. private List<T> data;
  13.  
  14. /** 上一页 */
  15. private int lastPage;
  16.  
  17. /** 当前页 */
  18. private int currentPage;
  19.  
  20. /** 下一页 */
  21. private int nextPage;
  22. //
  23. /** 每页条数 */
  24. private int pageSize;
  25.  
  26. /** 总页数 */
  27. private int totalPage;
  28.  
  29. /** 总数据条数 */
  30. private int totalCount;
  31.  
  32. public ListPageUtil(List<T> data,int currentPage,int pageSize) {
  33. if (data == null || data.isEmpty()) {
  34. throw new IllegalArgumentException("data must be not empty!");
  35. }
  36.  
  37. this.data = data;
  38. this.pageSize = pageSize;
  39. this.currentPage = currentPage;
  40. this.totalCount = data.size();
  41. this.totalPage = (totalCount + pageSize - 1) / pageSize;
  42. this.lastPage = currentPage-1>1? currentPage-1:1;
  43. this.nextPage = currentPage>=totalPage? totalPage: currentPage + 1;
  44.  
  45. }
  46.  
  47. /**
  48. * 得到分页后的数据
  49. * @return 分页后结果
  50. */
  51. // public List<T> getPagedLst() {
  52. // int fromIndex = (nowPage - 1) * pageSize;
  53. // if (fromIndex >= data.size()) {
  54. // return Collections.emptyList();//空数组
  55. // }
  56. // if(fromIndex<0){
  57. // return Collections.emptyList();//空数组
  58. // }
  59. // int toIndex = nowPage * pageSize;
  60. // if (toIndex >= data.size()) {
  61. // toIndex = data.size();
  62. // }
  63. // return data.subList(fromIndex, toIndex);
  64. // }
  65.  
  66. public int getPageSize() {
  67. return pageSize;
  68. }
  69.  
  70. public List<T> getData() {
  71. int fromIndex = (currentPage - 1) * pageSize;
  72. if (fromIndex >= data.size()) {
  73. return Collections.emptyList();//空数组
  74. }
  75. if(fromIndex<0){
  76. return Collections.emptyList();//空数组
  77. }
  78. int toIndex = currentPage * pageSize;
  79. if (toIndex >= data.size()) {
  80. toIndex = data.size();
  81. }
  82. return data.subList(fromIndex, toIndex);
  83. }
  84. public int getLastPage() {
  85. return lastPage;
  86. }
  87.  
  88. public int getCurrentPage() {
  89. return currentPage;
  90. }
  91.  
  92. public int getNextPage() {
  93. return nextPage;
  94. }
  95.  
  96. public int getTotalPage() {
  97. return totalPage;
  98. }
  99.  
  100. public int getTotalCount() {
  101. return totalCount;
  102. }
  103. }

针对list集合进行分页展示的更多相关文章

  1. linq查询集合并分页展示数据

    private void Bind() { if (Request.QueryString["QuestionNo"] != null) { string QuestionNo = ...

  2. C#-WebForm-组合查询(Queryable延迟查询、Intersect交集)、分页展示基础

    组合查询: 方法一:Queryable<> 延迟查询 其特点是:读到词句代码时不会立即执行,而是在进行数据绑定时执行 优点:此期间可以进行添加查询条件,以减少数据库查询内容,来减少内存占用 ...

  3. MySQL+Service+Servlet+Jsp实现Table表格分页展示数据

    下面以一个示例讲解如何使用MySQL+Service+Servlet+Jsp实现Table表格分页展示数据: eg:请假管理系统 要求如下: 一.打开首页页面, 访问查询请假记录的 servlet , ...

  4. Java Web中将oracle的数据库内容以表格形式展现到页面中(分页展示)

    分页SQL语句: ----分页显示 select * from (select rownum as r,t.* from () ; 查询的结果如下: 这个SQL,使用了三层嵌套的查询方式: 1)最内层 ...

  5. Django学习(5)优雅地分页展示网页

    在我们平时浏览网页时,经常会遇到网页里条目很多的情形,这时就会用到分页展示的功能.那么,在Django中,是如何实现网页分类的功能的呢?答案是Paginator类. 本次分享讲具体展示如何利用Djan ...

  6. Decoration4:分页展示

    现在我们实现前台List的分页展示,这也是最基本的要求 先看现在的Rest数据格式,在spring的默认返回中,分页用到的元素都已经在page节点中返回了,只要在前台合理利用就足够了 { " ...

  7. List集合进行分页

    /** * @ClassName: Text2 * @Description: (集合的分页算法) * @author Luhan * @date 2017年3月16日 下午17:18:06*/pub ...

  8. express + jqPaginator 分页展示内容

    写在前面的话 分页展示内容也是我们在页面开发中经常会遇到的需求 前端页面利用jqPaginator这个jquery插件来编写 后端利用mysql存储数据 开始敲代码 回顾sql知识 首先让我们回顾一下 ...

  9. jquery分页展示控件:kkpager

    kkpager v1.2 js分页展示控件,传入简单参数就能使用的分页效果控件 准备工作,引入js.css <script type="text/javascript" sr ...

随机推荐

  1. ElasticSearch相关文章推荐

    1. ElasticSearch查询:http://www.cnblogs.com/ljhdo/p/4486978.html 2. Elasticsearch Java API 的使用—多条件查询:h ...

  2. crontab 在指定时间范围每隔2小时执行一次和指定时间执行实例

    crontab 在指定时间范围每隔2小时执行一次和指定时间执行,下面实例实现了:10-23点每两个小时执行一次,2点执行一次,分钟依次是1 2 3 ,没有24点的,晚上12点是0点注:*代表所有的取值 ...

  3. linux下的ifconfig命令

    ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置. 1.命令格式: ifconfig [网络设备] [参数] 2.命令功能: ifconfig 命令用来查看和配置网络设 ...

  4. 关于js的日期处理

    1.日期转换(Date)方法一:String变为Date var t = "2015-03-16";var array =  t.split("-");var ...

  5. K8S学习笔记之二进制的方式创建一个Kubernetes集群

    0x00 单节点搭建和简述 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. 官方地址: ...

  6. flask自动代码自动补全

    编写py文件时,无法补全: 在app对象后面添加:# type:Flask app=Flask(__name__)   # type:Flask from flask import Flask, fl ...

  7. jQuery知识总结(转)

    原文:http://fwhyy.com/2013/04/jquery-knowledge-summary/ 这篇文章在于筛选器的简单例子,让人一看就懂代码的作用 20170223 前言 jQuery一 ...

  8. 【题解】Luogu P2257 YY的GCD

    原题传送门 这题需要运用莫比乌斯反演(懵逼钨丝繁衍) 显然题目的答案就是\[ Ans=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)=prime]\] 我们先设设F(n)表示满足\ ...

  9. Vmware 安装centos7与网络配置

    一.下载linux镜像 下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso 二.创 ...

  10. centos 7 安装使用 redis

    1.下载redis,用wget就行,版本在这里找: http://download.redis.io/releases/ 2.安装gcc,tcl,用yum 安装. 3.解压,make ,make in ...