Java list 分页(多种方式)
方式一:
public static void fenye(List list,int pagesize){
int totalcount=list.size();
int pagecount=0;
int m=totalcount%pagesize;
if (m>0){
pagecount=totalcount/pagesize+1;
}else{
pagecount=totalcount/pagesize;
}
for(int i=1;i<=pagecount;i++){
if (m==0){
List<Integer> subList= list.subList((i-1)*pagesize,pagesize*(i));
System.out.println(subList);
}else{
if (i==pagecount){
List<Integer> subList= list.subList((i-1)*pagesize,totalcount);
System.out.println(subList);
}else{
List<Integer> subList= list.subList((i-1)*pagesize,pagesize*(i));
System.out.println(subList);
}
}
}
}
List<Integer> list=new ArrayList<Integer>();
for(int i=1;i<52;i++){
list.add(i);
}
fenye(list,10);
方式二:
public <T> List<List<T>> splitList(List<T> list, int pageSize)
{
int listSize = list.size();
int page = (listSize + (pageSize - 1)) / pageSize;
List<List<T>> listArray = new ArrayList<List<T>>();
for (int i = 0; i < page; i++)
{
List<T> subList = new ArrayList<T>();
for (int j = 0; j < listSize; j++)
{
int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize;
if (pageIndex == (i + 1))
{
subList.add(list.get(j));
}
if ((j + 1) == ((j + 1) * pageSize))
{
break;
}
}
listArray.add(subList);
}
return listArray;
}
方式三:
public SearchResult paging(List<T> list, int pageNumber, int pageSize) throws Exception{
List<T> pageList = new ArrayList<T>();
int currIdx = (pageNumber > 1 ? (pageNumber -1) * pageSize : 0);
for (int i = 0; i < pageSize && i < list.size() - currIdx; i++){
T listNew = list.get(currIdx + i);
pageList.add(listNew);
}
SearchResult<T> searchResult = new SearchResult<T>();
searchResult.setList(pageList);
searchResult.setTotal(list.size());
if (searchResult.getTotal()%pageSize == 0){
searchResult.setPages((int)searchResult.getTotal()/pageSize);
}else {
searchResult.setPages((int)searchResult.getTotal()/pageSize + 1);
}
searchResult.setPageNum(pageNumber);
searchResult.setPageSize(pageSize);
searchResult.setSize(pageList.size());
//是否是第一页
if (pageNumber == 1){
searchResult.setIsFirstPage(true);
}else {
searchResult.setIsFirstPage(false);
}
//是否是最后一页
if ((searchResult.getTotal() - pageNumber*pageSize) > 0){
searchResult.setIsLastPage(false);
}else {
searchResult.setIsLastPage(true);
}
return searchResult;
}
方式四:
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
int page = 2;//相当于pageNo
int count = 20;//相当于pageSize
int size = list.size();
int pageCount=size/count;
int fromIndex = count * (page - 1);
int toIndex = fromIndex + count;
if (toIndex >= size) {
toIndex = size;
}
if(page>pageCount+1){
fromIndex=0;
toIndex=0;
}
System.out.println(list.subList(fromIndex, toIndex));
Java list 分页(多种方式)的更多相关文章
- sql语句分页多种方式ROW_NUMBER()OVER
sql语句分页多种方式ROW_NUMBER()OVER 摘自: http://www.cnblogs.com/CodingArt/articles/1692468.html 方式一 select to ...
- sql语句分页多种方式
sql语句分页多种方式ROW_NUMBER()OVER sql语句分页多种方式ROW_NUMBER()OVER 2009年12月04日 星期五 14:36 方式一 select top @pageSi ...
- Java中测试异常的多种方式
使用JUnit来测试Java代码中的异常有很多种方式,你知道几种? 给定这样一个class. Person.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- java 获取classpath下文件多种方式
java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...
- java获得路径的多种方式
本文讲解java语言中获得运行时路径的多种方式,包括java项目.java web项目.jar.weblogic等多种场景. 一.this.getClass().getClassLoader().ge ...
- Java多种方式读文件,追加文件内容,等对文件的各种操作
一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 import java.io.BufferedReader; import jav ...
- java中多种方式读文件
转自:http://www.jb51.net/article/16396.htm java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内 ...
- idea打包jar的多种方式
这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-a ...
- Spring学习总结(一)——Spring实现IoC的多种方式
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创 ...
随机推荐
- android handler messageQueue,looper
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 处理器获取 当前线程中的 循环器对象, 循环器 从 消息队列中 取出 消息, 给 处理器 ...
- NOI.AC WC模拟赛
4C(容斥) http://noi.ac/contest/56/problem/25 同时交换一行或一列对答案显然没有影响,于是将行列均从大到小排序,每次处理限制相同的一段行列(呈一个L形). 问题变 ...
- bzoj 3611
和BZOJ消耗站一样,先将那个询问的简图构建出来,然后就是简单的树形DP. (倍增数组开小了,然后就狂WA,自己生成的极限数据深度又没有那么高,链又奇迹般正确) #include <cstdio ...
- python开发_webbrowser_浏览器控制模块
''' python的webbrowser模块支持对浏览器进行一些操作 主要有以下三个方法: webbrowser.open(url, new=0, autoraise=True) webbrowse ...
- 1、安装Redis的PHP扩展
1.安装Redis的PHP扩展 1.1 安装phpize yum install php-devel 1.2 下载扩展源码包,直接用wget #wget下载github上的文件 wget https: ...
- PPT文化
PPT文化,yes or no? 知识是有体系的,有的时候刚接触的时候可以 推导技术 ,汇报.吹牛都可以应用上,并且可以让别人想想. 但是实际应用技术,就需要涉及很多详细的技术细节,如果少掉一个看似极 ...
- IOS7开发~Images.xcassets
from:http://blog.csdn.net/liufan321/article/details/9121241 新建项目,如下所示: 本文分享一下Images.xcassets的体验~_~ 1 ...
- 2013Esri全球用户大会之ArcGIS for Server&Portal for ArcGIS
Q1:ArcGIS 10.2 for Server有哪些新特性? ArcGIS 10.2对于ArcGIS for Server来说是一个引人注目的版本.它建立在ArcGIS 10.1扎实雄厚的基础上, ...
- android手机安全:被攻陷的一个场景
到处找WIFI,对于我们的手机控来说是相当普遍的了.假设你发现了有可用的wifi,并选择了浏览器连接,当浏览器出现一个web 页面的时候,你可能已经中招了. 相同,当你的手机使用一些免费应用的时候, ...
- CNZZ站点流量统计原理简析
这是我的域名www.iyizhan.com.暂无内容,当中仅仅有一个页面index.html. 在index.html上放置了例如以下的 js 脚本: <script src="ht ...