一、工具类代码

  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. laravel 自动加载 自定义的文件/辅助函数

    需求 在 laravel 中自定义了一些 辅助函数,想要laravel框架自动加载这些函数 实现 将自定义的辅助函数放在helpers.php文件中,如下: 在compsoer.json 的 auto ...

  2. Hadoop HDFS, YARN ,MAPREDUCE,MAPREDUCE ON YARN

    HDFS 系统架构图 NameNode 是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等.NameNode将 ...

  3. spring源码解析2--容器的基本实现

    spring的主要特性是IOC,实现IOC的关键是bean,而更关键的是如何bean的管理容器,也就是BeanFactory,本文的目标是弄清楚BeanFactory具体是怎么样的存在. 先看下最简单 ...

  4. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  5. react 父子组件通信

    import React from 'react'; import B from './B'; class A extends React.Component{ state = { msg:'我来自于 ...

  6. 数据库session立即生效(64---8192) SCOPE参数

    SCOPE=MEMORY|SPFILE|BOTH 指示了修改参数时的“作用域”: SCOPE=MEMORY :只在实例中修改,重启数据库后此次修改失效. SCOPE=SPFILE :只修改SPFILE ...

  7. java面向对象总结(一)

    1. 对象的概念及面向对象的三个基本特征 面向对象的三大核心特性 面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率.面向对象程序设计有以下优点. ...

  8. 小白のjava实现wc.exe功能

    GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file.c    //返回文件 file. ...

  9. Servlet和Filter的区别

    1.Filter是一个接口,而Servlet是一个类继承于Httpservlet 2.生命周期的不同,Filter在Web App被加载时,创建该Filter的实例,并调用init()方法(仅创建一个 ...

  10. 从零开始 CentOs 7 搭建论坛BBS Discuz_X3.2

    由于公司项目需要一个互动平台,可以发起活动,发消息留言,讨论过后发现这竟然是一个论坛的功能. 于是就不打算耗费功夫开发相关功能,直接另外搭一套BBS算球... 一直觉得搭建BBS不是一件难事,目前有很 ...