对list分页工具类

package util;

import java.util.List;

public class SubListUtil<E> {
	private int page; // 当前页
	private int pages; // 总页数
	private int total; // 总条数
	private int pageSize;// 每页显示数
	private List<E> list;// 要进行分页的list

	public SubListUtil(int page, int pageSize, List<E> list) {
		super();
		this.page = page;
		this.pageSize = pageSize;
		this.list = list;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}

	public int getPages() {
		if (this.total % this.pageSize == 0) {
			this.pages = this.total / this.pageSize;
		} else {
			this.pages = this.total / this.pageSize + 1;
		}
		return pages;
	}

	public void setPages(int pages) {
		this.pages = pages;
	}

	public int getTotal() {
		total = list.size();
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public List<E> getList() {
		List<E> newList = this.list.subList(this.getPageSize() * (this.getPage() - 1),
				(this.getPageSize() * this.getPage()) > this.getTotal() ? this.getTotal()
						: (this.getPageSize() * this.getPage()));
		// List<E> newList = this.list.subList(pageSize*(page-1),
		// (pageSize*page)>total?total:(pageSize*page));
		return newList;
	}

	public void setList(List<E> list) {
		this.list = list;
	}

}

测试方法

	public void SubList() {
		String receiver = this.getParams("receiver").trim();
		PagingInfo pagingInfo = new PagingInfo(this.getParams("page"), this.getParams("pageSize"));
		pagingInfo.invoke();
		List<commentnotify> list = new ArrayList<>();
		for(String clus_keys : DataBaseCluster.clusters.get("information").keySet()) {
			IDatabase _tDatabase = DataBaseCluster.Get_READ_SERVER("information", clus_keys);
			list.addAll(commentnotify.E().Where(commentnotify.receiver.Equals(receiver)).Select(_tDatabase));
		}
		
		SubListUtil<commentnotify> sListUtil = new SubListUtil<>(pagingInfo.getPage(), pagingInfo.getPageSize(), list);
		
		/*sListUtil.getPage();
		sListUtil.getPages();
		sListUtil.getTotal();
		sListUtil.getPageSize();
*/      
		List<commentnotify> result = sListUtil.getList();
		
		this.WriteUTF8JSONDATAMSG(1, "success", result);
	}

另一封装工具

package util;

import java.util.ArrayList;
import java.util.List;

public class PageList {

	private Integer currentPage;//当前页
    private int pageSize;//每页显示记录条数
    private int totalPage;//总页数
    private List<?> dataList;//每页显示的数据
    private int star;//开始数据

    public Integer getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(Integer currentPage) {
        this.currentPage = currentPage;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getTotalPage() {
        return totalPage;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
    public List<?> getDataList() {
        return dataList;
    }
    public void setDataList(List<?> dataList) {
        this.dataList = dataList;
    }
    public int getStar() {
        return star;
    }
    public void setStar(int star) {
        this.star = star;
    }
    
    
    /**
     * List分页
     * @param getpgindex 第几页
     * @param PageSize	一页有多少条数据
     * @param list
     * @return
     */
    public static List<?> Paging(String getpgindex,String PageSize,List<?> list){
    	PageList page = new PageList();
    	//查询出的list数据
        List<?> focusOnProblems = list;
        //刚开始的页面为第一页
        if (getpgindex == ""){
            page.setCurrentPage(1);
        } else {
            page.setCurrentPage(Integer.valueOf(getpgindex));
        }
        //设置每页数据为十条
        page.setPageSize(Integer.valueOf(PageSize));
        //每页的开始数
        page.setStar((page.getCurrentPage() - 1) * page.getPageSize());
        //list的大小
        int count = focusOnProblems.size();
        //设置总页数
        page.setTotalPage(count % page.getPageSize() == 0 ? count / page.getPageSize() : count / page.getPageSize() + 1);
        //对list进行截取
        try {
        	page.setDataList(focusOnProblems.subList(page.getStar(),count-page.getStar()>page.getPageSize()?page.getStar()+page.getPageSize():count));
		} catch (Exception e) {
			return new ArrayList<>();
		}
         System.out.println(page.getDataList());
		return page.getDataList();
    }
    
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值