一个简单的对任意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请求和本地数据两种形式.还有不完善的地方,只做了 ...
随机推荐
- 【数据结构】算法 Maximum Subarray
最大子数组:Maximum Subarray 参考来源:Maximum subarray problem Kadane算法扫描一次整个数列的所有数值,在每一个扫描点计算以该点数值为结束点的子数列的最大 ...
- jQuery - 链(Chaining)
http://www.runoob.com/jquery/jquery-chaining.html jQuery - 链(Chaining) 通过 jQuery,可以把动作/方法链接在一起. Chai ...
- python数据科学 学习之路
week1 - Python基础1 介绍.基本语法.流程控制 week1- Python基础2 列表.字典.集合 week1- Python基础3 函数.递归.内置函数 week1- Pyt ...
- 关于Xocd升级 cocopoads无法使用的解决
最近由于工作原因,升级了下Xcode,以前是8.1现在升级到了8.3,导致无法使用了cocopoads,研究了好久终于找到了解决办法. 先描述下我的几个问题吧. 1.当运行cocopoads的时候出现 ...
- 手把手教你如何安装Pycharm
手把手教你如何安装Pycharm——靠谱的Pycharm安装详细教程 今天小编给大家分享如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址: ...
- liunx驱动----系统滴答时钟的使用
2019-3-12系统滴答定时器中断使用 定义一个timer 其实就是使用系统的滴答定时器产生一个中断. 初始化timer init_timer函数 实现如下 void fastcall ini ...
- 20175208 张家华 MyOD
一.实现目的: 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 二.功能简介 1.Linux下的od功能是将指定文件内容以八进制.十进制.十六进 ...
- LoadXml 加载XML时,报错:“根级别上的数据无效。 行1,位置1“
==XML=================================== <?xml version="1.0" encoding="utf-8" ...
- Linux服务器---博客wordpress
Wordpress Wordpress是一个开源的博客平台,是搭建个人博客的首选,用户可以去wordpress中文网站寻找帮助资料 1.下载wordpress软件(https://cn.wordpre ...
- Python批量合并处理B站视频
最近想学习后端,又不想花钱,怎么办呢?于是在手机端B站(哔哩哔哩)上面找到了满意的免费视频教程,但是手机端看起来很不方便啊.于是,我通过在手机端缓存下来后,导入到了电脑端,但是我后面了发现两个问题: ...