一、工具类代码

  1. 1 import java.util.List;
  2. 2 import java.util.stream.Collectors;
  3. 3
  4. 4 public class PageUtil<T> {
  5. 5 /**
  6. 6 * 实体类列表
  7. 7 */
  8. 8 List<T> content;
  9. 9 /**
  10. 10 * 是否首页
  11. 11 */
  12. 12 boolean first;
  13. 13 /**
  14. 14 * 是否尾页
  15. 15 */
  16. 16 boolean last;
  17. 17 /**
  18. 18 * 总记录数
  19. 19 */
  20. 20 Integer totalElements;
  21. 21 /**
  22. 22 * 总页数
  23. 23 */
  24. 24 Integer totalPages;
  25. 25
  26. 26 Integer numberOfElements;
  27. 27 /**
  28. 28 * 每页记录数
  29. 29 */
  30. 30 Integer size;
  31. 31 /**
  32. 32 * 当前页
  33. 33 */
  34. 34 Integer number;
  35. 35
  36. 36 @Override
  37. 37 public String toString() {
  38. 38 return "PageUtil{" +
  39. 39 "content=" + content +
  40. 40 ", first=" + first +
  41. 41 ", last=" + last +
  42. 42 ", totalElements=" + totalElements +
  43. 43 ", totalPages=" + totalPages +
  44. 44 ", numberOfElements=" + numberOfElements +
  45. 45 ", size=" + size +
  46. 46 ", number=" + number +
  47. 47 '}';
  48. 48 }
  49. 49
  50. 50 public List<T> getContent() {
  51. 51 return content;
  52. 52 }
  53. 53
  54. 54 public boolean isFirst() {
  55. 55 return first;
  56. 56 }
  57. 57
  58. 58 public boolean isLast() {
  59. 59 return last;
  60. 60 }
  61. 61
  62. 62 public Integer getTotalElements() {
  63. 63 return totalElements;
  64. 64 }
  65. 65
  66. 66 public Integer getTotalPages() {
  67. 67 return totalPages;
  68. 68 }
  69. 69
  70. 70 public Integer getNumberOfElements() {
  71. 71 return numberOfElements;
  72. 72 }
  73. 73
  74. 74 public Integer getSize() {
  75. 75 return size;
  76. 76 }
  77. 77
  78. 78 public Integer getNumber() {
  79. 79 return number;
  80. 80 }
  81. 81
  82. 82 public void pageUtil(Integer page, Integer size, List<T> list){
  83. 83 List<T> list1=list.stream ().skip (page*size).limit (size).collect(Collectors.toList());
  84. 84 int length=list.size ();
  85. 85 this.first=(page==0);//是否第一页
  86. 86 this.last= (page==(length-1)/size);//是否最后一页
  87. 87 this.totalPages =((length-1)/size+1);//总页数
  88. 88 this.totalElements= (length);//总elements
  89. 89 this.size= (size);//每页多少elements
  90. 90 this.content= (list1);//内容
  91. 91 this.numberOfElements =(list1.size ());//当前页elements
  92. 92 this.number= (page);//当前页数,第一页是0
  93. 93 }
  94. 94 }

二、测试

  1. import java.util.Arrays;
  2. import java.util.List;
  3.  
  4. public class PageTest {
  5. public static void main(String[] args) {
  6. int page=1;
  7. int size=5;
  8. List<String> stringList= Arrays.asList ("1","2","3","4","5","6","7","8","9","10","11","12","13","14");
  9. List<Integer> integerList=Arrays.asList (1,2,3,4,5,6,7,8,9,10,11,12,13,14);
  10. PageUtil<String> stringPageUtil=new PageUtil<> ();
  11. stringPageUtil.pageUtil (page,size,stringList);
  12. PageUtil<Integer> integerPageUtil=new PageUtil<> ();
  13. integerPageUtil.pageUtil (page,size,integerList);
  14. System.out.println (stringPageUtil);
  15. System.out.println ("==========================================");
  16. System.out.println (integerPageUtil);
  17. }
  18. }

三、结果

  1. PageUtil{content=[6, 7, 8, 9, 10], first=false, last=false, totalElements=14, totalPages=3, numberOfElements=5, size=5, number=1}
  2. ==========================================
  3. PageUtil{content=[6, 7, 8, 9, 10], first=false, last=false, totalElements=14, totalPages=3, numberOfElements=5, size=5, numbe

一个简单的对任意list分页的工具-----PageUtil的更多相关文章

  1. 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类

    快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...

  2. ruby利用Zip Gem写一个简单的压缩和解压的小工具

    在UNIX下的我们怎么会沦落到用ruby写压缩和解压工具呢?直接上shell啊!但是请允许本猫这次可耻的用ruby来玩玩吧!其实ruby GEM中有很多压缩解压包,我选的是Zip,也许是因为名字符合K ...

  3. 我写了一个简单的JSON序列化和反序列化的工具

    背景 互联网上有许多可用的Json序列化和反序列化的工具,例如fastjson,jackson,Gson等等,那么,我为什么还要自己写一个? 项目不方便依赖其他第三方库.比如有时候我们编写SDK,考虑 ...

  4. 分享一个简单的C#的通用DbHelper类(支持数据连接池)

    每次新项目的时候,都要从头去找一遍数据库工具类.这里分享一个简单实用的C#的通用DbHelper工具类,支持数据连接池. 连接池配置 <connectionStrings> <add ...

  5. asp.net mvc4+mysql做一个简单分页组件(部分视图)

    在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstr ...

  6. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

  7. 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库

    57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...

  8. 使用MongoDB和JSP实现一个简单的购物车系统

    目录 1 问题描述  2 解决方案  2.1  实现功能  2.2  最终运行效果图  2.3  系统功能框架示意图  2.4  有关MongoDB简介及系统环境配置  2.5  核心功能代码讲解  ...

  9. 一个简单的消息提示jquery插件

    最近在工作中写了一个jquery插件,效果如下: 就是一个简单的提示消息的一个东西,支持最大化.最小化.关闭.自定义速度.自定义点击事件,数据有ajax请求和本地数据两种形式.还有不完善的地方,只做了 ...

随机推荐

  1. Java 多线程之Timer与ScheduledExecutorService

    1.Timer管理延时任务的缺陷 a.以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗:然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只 ...

  2. RAID技术详解

    RAID:Redundant Array of Independent Disks 中文我们称为独立冗余磁盘阵列.基本上是见名知意.RAID的基本思想就是将多个容量较小且价格实惠的磁盘进行组合起来构成 ...

  3. BeyondCompare使用一段时间后会因“许可证密钥已被撤销:3281-0350“而无法使用

    解决方式: 1.用任意文本编辑软件打开“C:\Users\[Your User Name]\AppData\Roaming\Scooter Software\Beyond Compare 3\BCSt ...

  4. redis 在 php 中的应用(Hash篇)

    本文为我阅读了 redis参考手册 之后结合 博友的博客 编写,注意 php_redis 和 redis-cli 的区别(主要是返回值类型和参数用法) Redis hash 是一个string类型的f ...

  5. react中对于redux的封装

    const createStore = (reducer)=>{ //默认的state对象 let state = {}; //将所有订阅的事件存在在这个数组中 let listeners = ...

  6. 1.4:SubShader

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 在了解了渲染流水线之后,我们可以开始SubShader的学习了. 什么是S ...

  7. asp.net core 同时添加Identity和Bearer认证

    是这样的,网上介绍的Oauth认证一般都是授权服务器和资源服务器分开,但是我只想在一个网站中使用asp.net core自带的Identity认证给用户访问网站用,同时提供一些api接口通过Token ...

  8. GPIO8种方式小总结

    在输出3时写1时上反向为0,下为1,1时MOS不接通,0接通 为1时上导通输出高电平1: 为0时下导通输出低电平0: VDD为逻辑电源正 VSS为逻辑地 若为输出状态则施密特触发器总为开 然后经过上拉 ...

  9. 20175312 2018-2019-2 《Java程序设计》第9周学习总结

    20175312 2018-2019-2 <Java程序设计>第9周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第九章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...

  10. 容器中的诊断与分析2——live diagnosis——perf

    Linux下的内核测试工具——perf使用简介 系统级性能分析工具 — Perf linux perf - 性能测试和优化工具:示例&应用 从2.6.31内核开始,linux内核自带了一个性能 ...