对list集合分页

Java代码

	public static <T> List<T> startPage(List<T> list, Integer pageNum, Integer pageSize) {
		Objects.requireNonNull(list);
		if (list.isEmpty()) {
			return Collections.emptyList();
		}
		// 记录总数
		Integer len = list.size();
		if (Objects.isNull(pageNum) || pageNum < 1) {
			pageNum = 1;
		}
		if (Objects.isNull(pageSize) || pageSize < 1) {
			pageSize = 10;
		}
		if (pageSize > len) {
			pageSize = len;
		}
		// 页数
		Integer pageCount = len % pageSize == 0 ? len / pageSize : len / pageSize + 1;
		if (pageNum > pageCount) {
			pageNum = pageCount;
		}
		// 开始索引
		int fromIndex = (pageNum - 1) * pageSize;
		// 结束索引
		int toIndex = fromIndex + pageSize;
		ArrayList<T> rj = new ArrayList<>(Math.min(toIndex, len) + 1 - fromIndex);
		for (int i = fromIndex, j = Math.min(toIndex, len); i < j; ++i) {
			rj.add(list.get(i));
		}
		return rj;
	}
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享