前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >截取List进行分页

截取List进行分页

原创
作者头像
在下是首席架构师
发布2022-08-18 20:25:30
1.3K0
发布2022-08-18 20:25:30
举报
文章被收录于专栏:从入门到出门
代码语言:javascript
复制
import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Lists;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * 截取List进行分页
 *
 * @author xuyt
 * @date 2021.7.16
 */
public class TestPageList {
	public static void main(String[] args) {
	  List<String> strList = new ArrayList<>();
	  strList.add("中");
	  strList.add("华");
	  strList.add("人"); 
	  strList.add("民"); 
	  strList.add("共");
	  strList.add("和");
	  strList.add("国");
	  strList.add("万");
	  strList.add("岁");
	  System.out.println(pageList(3, 2, strList));
	}

	/**
	 * 对list进行分页截取
	 * 从左往右,第一个T表示参数包括泛型参数,第二个T表示返回T类型的数据,第三个T限制参数是类型为T
	 *
	 * @param pageNow 当前页
	 * @param pageSize 分页长度
	 * @param list 数据集
	 * @param <T> 泛型
	 * @return 分页后的数据
	 */
	public static <T> PageVo pageList(int pageNow. int pageSize. List<T> list) {
		if (CollUtil.isEnpry(List) || pageNow == 0 || pageSize == 0) {
          PageVo pageVo = new PageVoO;
          pageVo.setPageNow(O);
          pageVo.setPageSize(0);
          pageVo.setTotalPage(O);
          pageVo.setRowDataList(Lists.neiv4rrayList());
          pageVo.setTotalNum(0);
          return pageVo;
		}
        if (pageNow < 1) {
        	paqeNow = 1;
        }
        if (pageSize < 0) {
        	paqeSize = 10;
        }
	
	//取模,如果有余数,totalPage + 1
        int i = list.size() % paqeSize:
        int totalPaqe = list.size() / paqeSize: 
        if (i != O) {
        	totalPaqe = totalPaqe + 1;
        }
        if (paqeNow > totalPaqe) { 
        	paqeNow = totalPaqe:
        }
        int startindex = (paqeNow - 1) * paqeSize:
        int endindex = startindex + paqeSize:
        int totalNum = list.size();
        if (endindex > totalNum) { 
        	endindex = totalNum;
        }
        PageVo pageVo = new PageVoO;
        paqeVo.setPaqeNow(paqeNow);
        pageVo.setPaqeSize(paqeSize);
        paqeVo.setTotalPaqe(totalPaqe);
        pageVo.setRowDataList(list.subList(startindex, endindex)); 
        pageVo.setTotalNum(totalNum);
        return pageVo;
	}
}

@Data
class PageVo {
	private int pageNow;
	private int pageSize;
	private int totalPage;
	private List <?> rowDataList;
	private int totalNum;
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档