最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中對list集合進行分頁的四種方式介紹

 更新時間:2025年12月08日 09:43:59   作者:江湖搬運工  
這篇文章主要為大家詳細(xì)介紹了Java中對list集合進行分頁的四種方式,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,感興趣的小伙伴可以了解下

這篇文章主要為大家提供了四種在Java中對List進行分頁處理的方法,包括計算總頁數(shù)、獲取子列表等操作,適用于數(shù)據(jù)量較大時的顯示優(yōu)化。大家可以根據(jù)自己的需要進行選擇

方式一

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;//相當(dāng)于pageNo-------分頁中的pi
        int count = 20;//相當(dāng)于pageSize-------分頁中的ps
        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));

例子

rckqMonthlyList為一個list
        if (rckqMonthlyList.size() <= 0) {
            map.put("totalPage", 1);
            map.put("pageIndex", 1);
            map.put("pageSize", query.getPs());
            map.put("totalRow", 0);
            map.put("hasNext", false);
            map.put("list", rckqMonthlyList);
            return new ApiResult().success(map);
        }
        //有數(shù)據(jù)時
        //計算總頁數(shù)
        Integer totalPage = rckqMonthlyList.size() / query.getPs();
//        if (rckqMonthlyList.size() % query.getPs() > 0) {
//           totalPage++;
//        }
        int fromIndex = query.getPs() * (query.getPi() - 1);
        int toIndex = fromIndex + query.getPs();
        if (toIndex >= rckqMonthlyList.size()) {
            toIndex = rckqMonthlyList.size();
        }
        if(query.getPi()>totalPage+1){
            fromIndex=0;
            toIndex=0;
        }
        Boolean hasNext = query.getPi() != totalPage;
        map.put("totalPage", totalPage);
        map.put("pageIndex", query.getPi());
        map.put("pageSize", query.getPs());
        map.put("totalRow", rckqMonthlyList.size());
        map.put("hasNext", hasNext);
        map.put("list", rckqMonthlyList.subList(fromIndex,toIndex));
        return new ApiResult().success(map);

到此這篇關(guān)于Java中對list集合進行分頁的四種方式介紹的文章就介紹到這了,更多相關(guān)Java list分頁內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEAJavaWeb項目詳解

    IDEAJavaWeb項目詳解

    文章介紹了在IDEA Ultimate中創(chuàng)建Web項目并配置Tomcat服務(wù)器的步驟,包括添加框架支持、設(shè)置部署Artifact及運行測試,同時提醒社區(qū)版用戶需確認(rèn)版本差異以避免404錯誤
    2025-09-09
  • SpringBoot整合JWT實戰(zhàn)教程

    SpringBoot整合JWT實戰(zhàn)教程

    JWT(JSON?Web?Token)是一種用于身份驗證和授權(quán)的開放標(biāo)準(zhǔn)(RFC?7519),它使用JSON格式傳輸信息,可以在不同系統(tǒng)之間安全地傳遞數(shù)據(jù),這篇文章主要介紹了SpringBoot整合JWT實戰(zhàn)教程,需要的朋友可以參考下
    2023-06-06
  • Java項目中實現(xiàn)使用traceId跟蹤請求全流程日志

    Java項目中實現(xiàn)使用traceId跟蹤請求全流程日志

    這篇文章主要介紹了Java項目中實現(xiàn)使用traceId跟蹤請求全流程日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 一文探究ArrayBlockQueue函數(shù)及應(yīng)用場景

    一文探究ArrayBlockQueue函數(shù)及應(yīng)用場景

    這篇文章主要為大家介紹了一文探究ArrayBlockQueue函數(shù)及應(yīng)用場景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Mybatis中傳遞多個參數(shù)的4種方法總結(jié)

    Mybatis中傳遞多個參數(shù)的4種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于Mybatis中傳遞多個參數(shù)的4種方法,并且介紹了關(guān)于使用Mapper接口時參數(shù)傳遞方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • springboot整合mybatis-plus基于注解實現(xiàn)一對一(一對多)查詢功能

    springboot整合mybatis-plus基于注解實現(xiàn)一對一(一對多)查詢功能

    這篇文章主要介紹了springboot整合mybatis-plus基于純注解實現(xiàn)一對一(一對多)查詢功能,因為本人采用的是spring-boot進行開發(fā),本身springboot就提倡采用不用配置自動配置的方式,所以真心希望mybatis(不是mybatis-plus)這點需要繼續(xù)努力
    2021-09-09
  • java實現(xiàn)高效的枚舉元素集合示例

    java實現(xiàn)高效的枚舉元素集合示例

    Set是Java集合類的重要組成部分,它用來存儲不能重復(fù)的對象。枚舉類型也要求其枚舉元素各不相同??雌饋砻杜e類型和集合是很相似的。然而枚舉類型中的元素不能隨意的增加、刪除,作為集合而言,枚舉類型非常不實用。EnumSet是專門為enum實現(xiàn)的集合類,本實例將演示其用法
    2014-03-03
  • RestTemplate使用Proxy代理作為跳板發(fā)送請求

    RestTemplate使用Proxy代理作為跳板發(fā)送請求

    這篇文章主要為大家介紹了RestTemplate使用代理proxy作為跳板發(fā)送請求的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • JAVA數(shù)字轉(zhuǎn)中文大寫兩種實現(xiàn)代碼

    JAVA數(shù)字轉(zhuǎn)中文大寫兩種實現(xiàn)代碼

    在Java程序?qū)崿F(xiàn)數(shù)字金額轉(zhuǎn)為大寫中文金額,是一項非常常見的編程任務(wù),這篇文章主要介紹了JAVA數(shù)字轉(zhuǎn)中文大寫兩種實現(xiàn)方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下,
    2025-07-07
  • Springboot把外部依賴包納入Spring容器管理的兩種方式

    Springboot把外部依賴包納入Spring容器管理的兩種方式

    這篇文章主要給大家介紹了Springboot把外部依賴包納入Spring容器管理的兩種方式,Spring.factories和org.springframework.boot.autoconfigure.AutoConfiguration.imports,有感興趣的小伙伴可以參考閱讀本文
    2023-07-07

最新評論

武威市| 临泉县| 万宁市| 崇文区| 盐源县| 宝丰县| 瓦房店市| 千阳县| 建阳市| 池州市| 奉节县| 抚远县| 昭觉县| 定安县| 岚皋县| 灌南县| 眉山市| 台南市| 临洮县| 怀安县| 蛟河市| 甘南县| 衢州市| 张家口市| 枣强县| 宿迁市| 盈江县| 霍城县| 高州市| 东明县| 新丰县| 阜新市| 赣州市| 特克斯县| 江山市| 永年县| 千阳县| 福清市| 泌阳县| 五原县| 峨眉山市|