標籤:arraylist 一個 根據 int 條件 pre 直接 rstp class
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進行分頁