当前位置: 首页 > 工具软件 > ListPage > 使用案例 >

List集合如何分页(List集合转Page分页)

万承志
2023-12-01

写在前头

这段时间写了一个小需求,做page页筛选功能,但这个筛选项有两个条件,且是多选,那就不得不用list集合来做处理,再转page

下面的list转page方法,可以直接复制拿来用:

	/**
	 * 分页函数
	 * @author pochettino
	 * @param currentPage   当前页数
	 * @param pageSize  每一页的数据条数
	 * @param list  要进行分页的数据列表
	 * @return  当前页要展示的数据
	 */
	private Page getPages(Integer currentPage, Integer pageSize, List list) {
		Page page = new Page();
		if(list==null){
			return  null;
		}
		int size = list.size();

		if(pageSize > size) {
			pageSize = size;
		}
		if (pageSize!=0){
			// 求出最大页数,防止currentPage越界
			int maxPage = size % pageSize == 0 ? size / pageSize : size / pageSize + 1;

			if(currentPage > maxPage) {
				currentPage = maxPage;
			}
		}
		// 当前页第一条数据的下标
		int curIdx = currentPage > 1 ? (currentPage - 1) * pageSize : 0;

		List pageList = new ArrayList();

		// 将当前页的数据放进pageList
		for(int i = 0; i < pageSize && curIdx + i < size; i++) {
			pageList.add(list.get(curIdx + i));
		}

		page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList);
		return page;
	}
 类似资料: