List集合分页显示

package com.mshc.util;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author svs:
 * @version 创建时间:2016-12-16 下午02:28:23
 * 类说明
 */
public class ListPageUtil<T> {
    /**原集合*/
    private List<T> data;

    /** 上一页 */
    private int lastPage;

    /** 当前页 */
    private int nowPage;

    /** 下一页 */
    private int nextPage;
//
    /** 每页条数 */
    private int pageSize;

    /** 总页数 */
    private int totalPage;

    /** 总数据条数 */
    private int totalCount;

    public ListPageUtil(List<T> data,int nowPage,int pageSize) {
        if (data == null || data.isEmpty()) {
            throw new IllegalArgumentException("data must be not empty!");
        }

        this.data = data;
        this.pageSize = pageSize;
        /*this.totalPage = data.size()/pageSize;
        if(data.size()%pageSize!=0){
            this.totalPage++;
        }*/

        this.nowPage = nowPage;
        this.totalCount = data.size();
        this.totalPage = (totalCount + pageSize - 1) / pageSize;
        this.lastPage = nowPage-1>1? nowPage-1:1;
        this.nextPage = nowPage>=totalPage? totalPage: nowPage + 1;

    }

    /**
     * 得到分页后的数据
     *
     * @param pageNum 页码
     * @return 分页后结果
     */
    public List<T> getPagedList() {
        int fromIndex = (nowPage - 1) * pageSize;
        if (fromIndex >= data.size()) {
            return Collections.emptyList();//空数组
        }
        if(fromIndex<0){
            return Collections.emptyList();//空数组
        }
        int toIndex = nowPage * pageSize;
        if (toIndex >= data.size()) {
            toIndex = data.size();
        }
        return data.subList(fromIndex, toIndex);
    }

    public int getPageSize() {
        return pageSize;
    }

    public List<T> getData() {
        return data;
    }
    public int getLastPage() {
        return lastPage;
    }

    public int getNowPage() {
        return nowPage;
    }

    public int getNextPage() {
        return nextPage;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public int getTotalCount() {
        return totalCount;
    }

   public static void main(String[] args) {        Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};        List<Integer> list = Arrays.asList(array);        // ListPageUtil<Integer> pager = new ListPageUtil<Integer>(list, 10);        ListPageUtil<Integer> listPageUtil = new ListPageUtil<Integer>(list,4, 5);        List<Integer> pagedList = listPageUtil.getPagedList();        System.out.println(pagedList);    }
}
时间: 2024-11-10 08:37:40

List集合分页显示的相关文章

LigerUI中通过加载服务端数据进行表格的分页显示

前言:我的这一篇文章是紧接着上一篇关于LigerUI的文章(http://www.zifangsky.cn/379.html)写的,因此在这里我就省略了相关的环境搭建,直接进入正题 一 介绍 在LigerUI中显示表格是用的ligerGrid,同时我们可以通过配置url参数就可以加载远程数据并显示成表格形式.不仅如此,ligerGrid还可以进行数据的排序和分页显示: (1)排序:需要用到"sortname"和"sortorder"这两个参数,分别表示按哪个字段排序

查询内容在网页里面分页显示+跳页查看

因为还处于学习阶段,所以用的框架是Struts2+Hibernate, 查询的方法是Hibernate自带的方法,因为数据较少的缘故,所以设定每页显示两条数据来实现 1.dao 层Hibernate的分页方法 1 package com.hanqi.dao; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.hibernate.Session; 7 import org.hibernate.Sessio

新闻发布系统(分页显示)

根据上次的新闻发布展示页面效果,进行分页操作: 分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 一.页面效果图 1.创建util包,Page类,定义相关属性并进行封装: package cn.news.util; import java.util.List; import cn.news.entity.NewsDetail; public class Page { //当前页 private int pageIndex; //

如何对sharepoint图片库的文件夹的图片按照时间排序并分页显示

/// <summary> /// 获取图片库第一层文件夹--根据文件夹名称排序 /// </summary> /// <param name="siteUrl"></param> /// <param name="weburl"></param> /// <param name="listID"></param> /// <returns>

输入框实现新闻列表分页显示(一)

今天学了新闻发布系统中的使用分页技术实现页面的分页显示,感觉开始很难做,渐渐的需要动手,慢慢透析. 分页显示的步骤 1.确定每页显示的数据数量 2.计算显示的页数 3.编写SQL语句 第一步:连接数据库 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLExceptio

ASP基础教程:ADO存取数据库时如何分页显示

<动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建对象. ActiveX 组件去编写一些基本的 ASP 应用程序.从我收到的朋友们的来信中可以明显的感觉到,大家的 ASP 功力正不断地提升.最近很多朋友来信希望我写一些 ASP 在现实运用中的实例.因此,从本期开始我决定将<动态网站设计十八般武艺 --ASP 篇>的定位从介绍和学习 ASP 基础知识转向到

实例:SSh结合Easyui实现Datagrid的分页显示(JAVA版)

近日学习Easyui,发现非常好用,界面很美观.将学习的心得在此写下,这篇博客写SSh结合Easyui实现Datagrid的分页显示,其他的例如添加.修改.删除.批量删除等功能将在后面的博客一一写来. 首先看一下要实现的效果:当每页显示5行数据: 当每页显示10行数据,效果如下: 具体步骤: 1.下载Easyui,并搭建环境.可参照博客 http://blog.csdn.net/lhq13400526230/article/details/9148299 2.搭建SSH工程,整个工程的目录结构如

asp数据库编程:ADO 存取数据库时如何分页显示

∈裁词?ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条.想不想了解如何实现分页显示?请看本文! <动态网站设计十八般武艺 --ASP 篇>一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习.实践到再学习.再实践,大家已经能够熟练运用 ASP 的内建对象. ActiveX 组件去编写

MySQL查询in操作 查询结果按in集合顺序显示_Mysql_脚本之家

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;