一、工具类代码

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

二、测试

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

三、结果

PageUtil{content=[6, 7, 8, 9, 10], first=false, last=false, totalElements=14, totalPages=3, numberOfElements=5, size=5, number=1}
==========================================
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. Ubuntu MariaDB PhpMyAdmin

    root@www:~# apt-get -y install phpmyadmin php-mbstring php-gettext # select which one you using (thi ...

  2. GridView用法

    首先,gridview是封装好的,直接在设计界面使用,基本不需要写代码: 1.绑定数据源 GridView最好与LinQDatasourse配合使用,相匹配绑定数据: 2.外观控制 整体控制 自动选择 ...

  3. Jmeter之Redis读写

    Jmeter之Redis读写 奔跑的小小鱼  关注  0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...

  4. IIS + FastCGI+php(从5.2升级到5.3)

    由于PHP5.3 的改进,原有的IIS 通过isapi 方式解析PHP脚本已经不被支持,PHP从5.3.0 以后的版本开始使用微软的 fastcgi 模式,这是一个更先进的方式,运行速度更快,更稳定. ...

  5. web 分享到facebook

    利用meta 使自己的页面变为一种富媒体文件,利用facebook的 open Graph 比如你的html页面想要以图片的形式被分享 <meta property="og:image ...

  6. phpstudy-5.6.27-nts 安装redis扩展

    redis扩展安装流程 第一步: 首先直接查看一下phpinfo()的信息 找到下面两条信息 Architecture x86 PHP Extension Build API20131226,NTS, ...

  7. 基于OpenCV做“三维重建”(1)--找到并绘制棋盘

    <OpenCV计算机视觉编程攻略(第3版)>这套书已经出到第3版了,如果你非要我说这本书有多好,我说不出来:只是很多我第一手的例子都是来源于这本书的-相比较OpenCV官方提供的代码,这本 ...

  8. raphael参数说明

    大纲 :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-pr ...

  9. Ubuntu如何启用root用户登录

    默认安装Ubuntu都是不允许以root用户进行登录的,想要以root用户进行登录需要进行一些操作,主要是以下几个步骤: 第一步 在终端输入命令:sudo passwd root 以普通用户登录系统, ...

  10. 使用ODP.NET连接Oracle数据库

    项目需要和第三方进行对接,奇葩的是地方没给提供接口,却提供了一个Oracle的视图 所以有了C#访问Oracle数据库的需求 1.打开nuget,安装驱动 https://www.nuget.org/ ...