java對list集合進行分頁的四種寫法總結(jié)
java對list集合進行分頁的寫法
假設(shè)有一個list數(shù)組,因為總數(shù)過大,在進行查詢或者調(diào)用外部接口時,需要對其進行分頁處理,可以用以下幾種方式進行處理
eq:
List<String> bigList=Lists.newArrayList("a","b","c","d","e","f","g","h");
1. subList分頁【java.util.List.sublist(int fromIndex,int toIndex)】
int pageSize=3;//每頁大小 int count=bigList.size();//總list int totalPage=(int)((count/pageSize)+(count % pageSize >0?1:0));//總頁數(shù) for(int i=1;i<=totalPage;i++){ List<String> smallList=bigList.sublist(pageSize*(i-1),Math.min(pageSize*i,count));//截取對應(yīng)范圍數(shù)據(jù) System.out.println(smallList.toString()); }
2. partition分頁【com.google.com.collect.Lists.partition(List list,int size) 】
int pageSize=3;//每頁大小 List<List<String>> partitionList=Lists.partition(bigList,pageSize);//進行分頁 for(List<String> smallList:partitionList){ System.out.println(smallList.toString()); }
3. java8 stream流 分頁
int pageSize=3;//每頁大小 int count=bigList.size();//總list int totalPage=(int)((count/pageSize)+(count % pageSize >0?1:0));//總頁數(shù) // 使用 Stream 實現(xiàn)分頁 for(int i=1;i<=totalPage;i++){ List<String> smallList= bigList.stream() .skip(PageSize*(i-1)) // 跳過前 PageSize*(i-1) 個元素 .limit(pageSize) // 限制結(jié)果數(shù)量為 pageSize .collect(Collectors.toList()); //結(jié)果為列表 System.out.println(smallList.toString()); }
4. hutool工具類提供的方法ListUtil.split(List list,int size)
實際內(nèi)部實現(xiàn)還是subList分頁
int pageSize=3;//每頁大小 List<List<String>> splitList=ListUtil.split(bigList,pageSize);//bigList 需處理的列表,pageSize分頁長度 for(List<String> smallList:splitList){ System.out.println(smallList.toString()); }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作實現(xiàn)代碼
這篇文章主要介紹了Java 數(shù)據(jù)結(jié)構(gòu)鏈表操作的相關(guān)資料,并附實例代碼,需要的朋友可以參考下2016-10-10spring boot配置多個請求服務(wù)代理的完整步驟
這篇文章主要給大家介紹了關(guān)于spring boot配置多個請求服務(wù)代理的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-11-11從內(nèi)存模型中了解Java final的全部細節(jié)
關(guān)于final關(guān)鍵字,它也是我們一個經(jīng)常用的關(guān)鍵字,可以修飾在類上、或者修飾在變量、方法上,以此看來定義它的一些不可變性!像我們經(jīng)常使用的String類中,它便是final來修飾的類,并且它的字符數(shù)組也是被final所修飾的。但是一些final的一些細節(jié)你真的了解過嗎2022-03-03Java使用分治算法實現(xiàn)排序數(shù)索引功能示例【二分搜索】
這篇文章主要介紹了Java使用分治算法實現(xiàn)排序數(shù)索引功能,結(jié)合具體實例形式分析了java分治算法進行排序索引的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式
這篇文章主要介紹了mybatis-plus?Wrapper條件構(gòu)造器updateForSet更新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03關(guān)于intellij idea打開就閃退或關(guān)閉詳細解決辦法
這篇文章主要介紹了關(guān)于intellij idea打開就閃退或關(guān)閉詳細解決辦法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03