<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      List 集合手動(dòng)分頁(yè)的方法總結(jié)

      前言

      在工作中難免會(huì)遇到,將組裝的集合數(shù)據(jù)進(jìn)行分頁(yè)處理,現(xiàn)在我將自己手動(dòng)分頁(yè)的三種方法進(jìn)行總結(jié),有不對(duì)的地方敬請(qǐng)大家批評(píng)指正!

      一、數(shù)據(jù)準(zhǔn)備

       // 當(dāng)前頁(yè) 
      int pageIndex = 1;
      // 頁(yè)長(zhǎng)
      int pageSize = 10;
       List<UserEntity> userList = new ArrayList<>();
       userList.add(UserEntity.builder().id(1).name("張三").sex(0).build());
       userList.add(UserEntity.builder().id(2).name("李四").sex(0).build());
       userList.add(UserEntity.builder().id(3).name("張三").sex(0).build());
       userList.add(UserEntity.builder().id(4).name("李四").sex(0).build());
       userList.add(UserEntity.builder().id(5).name("王五").sex(1).build());
       userList.add(UserEntity.builder().id(6).name("王麻子").sex(1).build());
       userList.add(UserEntity.builder().id(7).name("店小二").sex(1).build());
       userList.add(UserEntity.builder().id(8).name("王大錘").sex(1).build());
       userList.add(UserEntity.builder().id(9).name("小黑").sex(1).build());
       userList.add(UserEntity.builder().id(10).name("李思思").sex(0).build());
       userList.add(UserEntity.builder().id(11).name("張三豐").sex(1).build());
       userList.add(UserEntity.builder().id(12).name("尼古拉斯趙六").sex(1).build());
       userList.add(UserEntity.builder().id(13).name("趙老劉").sex(1).build());

      二、利用 Lists.partition() 方法進(jìn)行數(shù)據(jù)將數(shù)據(jù)切割分頁(yè)

      List<UserEntity> resultList = new ArrayList<>();
           // 將數(shù)據(jù)按照傳過(guò)來(lái)頁(yè)長(zhǎng)進(jìn)行切割 List
      <List<UserEntity>> partition = Lists.partition(userList,pageSize); for (int i = 0; i < partition.size(); i++) { if (i == pageIndex){ resultList = partition.get(pageIndex); } }

      三、利用封裝的分頁(yè)工具進(jìn)行分頁(yè)

      (1)分頁(yè)工具

      /**
       * @project 
       * @Description 對(duì)List集合進(jìn)行份分頁(yè)
       * @Author songwp
       * @Date 2023/5/12 13:55
       **/
      public class ListPagingUtil {
              private Integer currentPage;//當(dāng)前頁(yè)
              private Integer pageSize;//每頁(yè)顯示記錄條數(shù)
              private Integer totalPage;//總頁(yè)數(shù)
              private Integer star;//開(kāi)始數(shù)據(jù)
              private Integer total;//總條數(shù)
              private List<?> dataList;//每頁(yè)顯示的數(shù)據(jù)
      
              public Integer getCurrentPage() {
                  return currentPage;
              }
      
              public void setCurrentPage(Integer currentPage) {
                  this.currentPage = currentPage;
              }
      
              public Integer getPageSize() {
                  return pageSize;
              }
      
              public void setPageSize(Integer pageSize) {
                  this.pageSize = pageSize;
              }
      
              public Integer getTotalPage() {
                  return totalPage;
              }
      
              public void setTotalPage(Integer totalPage) {
                  this.totalPage = totalPage;
              }
      
              public List<?> getDataList() {
                  return dataList;
              }
      
              public void setDataList(List<?> dataList) {
                  this.dataList = dataList;
              }
      
              public Integer getStar() {
                  return star;
              }
      
              public void setStar(Integer star) {
                  this.star = star;
              }
      
              public Integer getTotal() {
                  return total;
              }
      
              public void setTotal(Integer total) {
                  this.total = total;
              }
      
              @Override
              public String toString() {
                  return "ListPagingUtil{" +
                          "currentPage=" + currentPage +
                          ", pageSize=" + pageSize +
                          ", totalPage=" + totalPage +
                          ", dataList=" + dataList +
                          ", star=" + star +
                          ", total=" + total +
                          '}';
              }
      
              public void pageStartInfo(Integer currentPage, Integer pageSize){
                  //如果傳入的pageNumber為null給pageNumber賦為1
                  currentPage = currentPage == null ? 1 : currentPage;
                  //如果傳入的pageSize為null給pageSize賦為10
                  pageSize = pageSize == null ? 10 : pageSize;
                  this.setCurrentPage(currentPage);
                  this.setPageSize(pageSize);
              }
      
              public static ListPagingUtil paging(Integer currentPage, Integer pageSize, List<?> list) {
                  ListPagingUtil pagingUtil = new ListPagingUtil();
                  //初始化
                  pagingUtil.pageStartInfo(currentPage, pageSize);
                  //設(shè)置起始數(shù)據(jù)
                  pagingUtil.setStar((pagingUtil.getCurrentPage()-1)*pagingUtil.getPageSize());
                  //設(shè)置總數(shù)
                  pagingUtil.setTotal(list.size());
                  //設(shè)置總頁(yè)數(shù)
                  pagingUtil.setTotalPage(pagingUtil.getTotal() % pagingUtil.getPageSize() == 0 ? pagingUtil.getTotal()/pagingUtil.getPageSize() :pagingUtil.getTotal()/pagingUtil.getPageSize()+1);
                  //截取list
                  pagingUtil.setDataList(list.subList(pagingUtil.getStar(), pagingUtil.getTotal()-pagingUtil.getStar()>pagingUtil.getPageSize()?pagingUtil.getStar()+pagingUtil.getPageSize():pagingUtil.getTotal()));
                  return pagingUtil;
              }
      }

      (2)方法調(diào)用

      ListPagingUtil.paging(pageIndex,pageSize, userList)

      四、利用 stream進(jìn)行分頁(yè) 處理

      方法一:

       List<List<CompanyStaffEquipStatisticVO>> partition = ListUtils.partition(result, param.getPageSize());
              List<CompanyStaffEquipStatisticVO> companyStaffEquipStatisticVOS = param.getPageIndex() > partition.size() ? new ArrayList<>() : partition.get(param.getPageIndex() - 1);
              SafePageParam safePageParam = new SafePageParam();
              safePageParam.setPage(true);
              safePageParam.setPageSize(param.getPageSize());
              PageVO<CompanyStaffEquipStatisticVO> voResult = new PageVO<>(safePageParam, companyStaffEquipStatisticVOS, result.size());
              if (param.getPageIndex()*param.getPageSize()<result.size()) {
                  voResult.setHasNext(true);
              }
              return voResult;

      方法二:

      List<VendorExcelVO> resultVO = getVendorProjectListInfo(param);
      PageVO<VendorExcelVO> voPageVO = new PageVO<>();
      List<VendorExcelVO> collectList = resultVO.stream().skip((param.getPageIndex() - 1) * param.getPageSize()).limit(param.getPageSize()).collect(Collectors.toList());
      voPageVO.setPage(true);
      voPageVO.setPageSize(param.getPageSize());
      voPageVO.setCount(resultVO.size());
      voPageVO.setList(collectList);
      if (param.getPageIndex() * param.getPageSize() < resultVO.size()){
          voPageVO.setHasNext(true);
      }
      return voPageVO;
      posted @ 2023-05-12 15:55  [奮斗]  閱讀(2327)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久毛片少妇高潮| 伊人狠狠色丁香婷婷综合| 无码人妻av免费一区二区三区| 中文字幕在线视频不卡一区二区| 中美日韩在线一区黄色大片 | 国产精品无码a∨麻豆| 亚洲精品一区二区二三区| 国产线播放免费人成视频播放| 龙江县| 日韩深夜福利视频在线观看| 日韩精品亚洲 国产| 玩弄放荡人妻少妇系列| 熟女在线视频一区二区三区| 99国产精品99久久久久久| 人妻无码久久精品| 国产成人亚洲欧美二区综合| 国产精品中文字幕一区| 丁香花成人电影| 亚洲欧洲日产国码无码久久99| 国产成人8X人网站视频| 蜜臀91精品国产高清在线| 亚洲第一无码专区天堂| 亚洲伊人久久综合成人| 日本精品一区二区不卡| 陈巴尔虎旗| 亚洲欧美精品一中文字幕| 国产系列丝袜熟女精品视频 | 国语对白做受xxxxx在线中国| 精品精品国产自在97香蕉| 免费VA国产高清大片在线| 华人在线亚洲欧美精品| 日韩免费无码视频一区二区三区| 国精产品自偷自偷ym使用方法| 囯产精品久久久久久久久久妞妞| 久久国产国内精品国语对白| 国产日韩AV免费无码一区二区三区 | 日韩av一区二区高清不卡| 2021av在线天堂网| h无码精品动漫在线观看| 韩国免费a级毛片久久| 少妇人妻偷人一区二区|