Java对List进行分页

Posted 天道酬勤,厚德载物

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java对List进行分页相关的知识,希望对你有一定的参考价值。

Java对组装的List分页

以前一直是在DAO层直接从数据库里分页,但是今天因为有些数据,需要混合展示,就是根据条件取出了多个对象的集合,然后把这些多个List放到一个List里,然后在从这个List里进行分页。

 1 public SearchResult paging(List<T> list, int pageNumber, int pageSize) throws Exception{
 2         List<T> pageList = new ArrayList<T>();
 3         int currIdx = (pageNumber > 1 ? (pageNumber -1) * pageSize : 0);
 4         for (int i = 0; i < pageSize && i < list.size() - currIdx; i++){
 5             T listNew = list.get(currIdx + i);
 6             pageList.add(listNew);
 7         }
 8         SearchResult<T> searchResult = new SearchResult<>();
 9         searchResult.setList(pageList);
10         searchResult.setTotal(list.size());
11         if (searchResult.getTotal()%pageSize == 0){
12             searchResult.setPages((int)searchResult.getTotal()/pageSize);
13         }else {
14             searchResult.setPages((int)searchResult.getTotal()/pageSize + 1);
15         }
16         searchResult.setPageNum(pageNumber);
17         searchResult.setPageSize(pageSize);
18         searchResult.setSize(pageList.size());
19         //是否是第一页
20         if (pageNumber == 1){
21             searchResult.setIsFirstPage(true);
22         }else {
23             searchResult.setIsFirstPage(false);
24         }
25         //是否是最后一页
26         if ((searchResult.getTotal() - pageNumber*pageSize) > 0){
27             searchResult.setIsLastPage(false);
28         }else {
29             searchResult.setIsLastPage(true);
30         }
31         return searchResult;
32     }

 

以上是关于Java对List进行分页的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 8 中对对象列表进行分页?

java查询的分页思路!!

ThinkPHP5如何对数组进行分页

java.util.List接口的方法subList()进行分页查询

使用java.util.List的subList方法进行分页

两个list进行比较