一个简单的对任意list分页的工具-----PageUtil
一、工具类代码
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的更多相关文章
- 封装一个简单好用的打印Log的工具类And快速开发系列 10个常用工具类
快速开发系列 10个常用工具类 http://blog.csdn.net/lmj623565791/article/details/38965311 ------------------------- ...
- ruby利用Zip Gem写一个简单的压缩和解压的小工具
在UNIX下的我们怎么会沦落到用ruby写压缩和解压工具呢?直接上shell啊!但是请允许本猫这次可耻的用ruby来玩玩吧!其实ruby GEM中有很多压缩解压包,我选的是Zip,也许是因为名字符合K ...
- 我写了一个简单的JSON序列化和反序列化的工具
背景 互联网上有许多可用的Json序列化和反序列化的工具,例如fastjson,jackson,Gson等等,那么,我为什么还要自己写一个? 项目不方便依赖其他第三方库.比如有时候我们编写SDK,考虑 ...
- 分享一个简单的C#的通用DbHelper类(支持数据连接池)
每次新项目的时候,都要从头去找一遍数据库工具类.这里分享一个简单实用的C#的通用DbHelper工具类,支持数据连接池. 连接池配置 <connectionStrings> <add ...
- asp.net mvc4+mysql做一个简单分页组件(部分视图)
在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstr ...
- 只是一个用EF写的一个简单的分页方法而已
只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...
- 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库
57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...
- 使用MongoDB和JSP实现一个简单的购物车系统
目录 1 问题描述 2 解决方案 2.1 实现功能 2.2 最终运行效果图 2.3 系统功能框架示意图 2.4 有关MongoDB简介及系统环境配置 2.5 核心功能代码讲解 ...
- 一个简单的消息提示jquery插件
最近在工作中写了一个jquery插件,效果如下: 就是一个简单的提示消息的一个东西,支持最大化.最小化.关闭.自定义速度.自定义点击事件,数据有ajax请求和本地数据两种形式.还有不完善的地方,只做了 ...
随机推荐
- Ubuntu MariaDB PhpMyAdmin
root@www:~# apt-get -y install phpmyadmin php-mbstring php-gettext # select which one you using (thi ...
- GridView用法
首先,gridview是封装好的,直接在设计界面使用,基本不需要写代码: 1.绑定数据源 GridView最好与LinQDatasourse配合使用,相匹配绑定数据: 2.外观控制 整体控制 自动选择 ...
- Jmeter之Redis读写
Jmeter之Redis读写 奔跑的小小鱼 关注 0.2 2019.03.21 18:25* 字数 1330 阅读 45评论 0喜欢 1 Jmeter插件访问Redis共有3种方式: 1)通过自已 ...
- IIS + FastCGI+php(从5.2升级到5.3)
由于PHP5.3 的改进,原有的IIS 通过isapi 方式解析PHP脚本已经不被支持,PHP从5.3.0 以后的版本开始使用微软的 fastcgi 模式,这是一个更先进的方式,运行速度更快,更稳定. ...
- web 分享到facebook
利用meta 使自己的页面变为一种富媒体文件,利用facebook的 open Graph 比如你的html页面想要以图片的形式被分享 <meta property="og:image ...
- phpstudy-5.6.27-nts 安装redis扩展
redis扩展安装流程 第一步: 首先直接查看一下phpinfo()的信息 找到下面两条信息 Architecture x86 PHP Extension Build API20131226,NTS, ...
- 基于OpenCV做“三维重建”(1)--找到并绘制棋盘
<OpenCV计算机视觉编程攻略(第3版)>这套书已经出到第3版了,如果你非要我说这本书有多好,我说不出来:只是很多我第一手的例子都是来源于这本书的-相比较OpenCV官方提供的代码,这本 ...
- raphael参数说明
大纲 :first-child { margin-top: 0px; } .markdown-preview:not([data-use-github-style]) h1, .markdown-pr ...
- Ubuntu如何启用root用户登录
默认安装Ubuntu都是不允许以root用户进行登录的,想要以root用户进行登录需要进行一些操作,主要是以下几个步骤: 第一步 在终端输入命令:sudo passwd root 以普通用户登录系统, ...
- 使用ODP.NET连接Oracle数据库
项目需要和第三方进行对接,奇葩的是地方没给提供接口,却提供了一个Oracle的视图 所以有了C#访问Oracle数据库的需求 1.打开nuget,安装驱动 https://www.nuget.org/ ...