Java 集合分页

2、使用 subList 实现分页:

/**@Description: subList 分页
 * 
1. 起始位置边界值处理: 当前页码 <= 0 情况处理; 当前页码 > 最大页码 情况处理  *
2. 终止位置边界值处理: 当前页码 <= 0 情况处理; 终止位置 <= 总记录数  情况处理  * @param pageSize 每页显示的数量  * @param pageNum  当前页码  * @version v1.0  * @author wu  * @date 2022/7/31 11:44  */ private List subList(ArrayList list, int pageSize, int pageNum) {     int count = list.size(); // 总记录数     // 计算总页数     int pages = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;     // 起始位置     int start = pageNum <= 0 ? 0 : (pageNum > pages ? (pages - 1) * pageSize : (pageNum - 1) * pageSize);     // 终止位置     int end = pageNum <= 0 ? (pageSize <= count ? pageSize : count) : (pageSize * pageNum <= count ? pageSize * pageNum : count);     return list.subList(start, end); }


3、Java8 Stream 分页

/**@Description: Java8 Stream 分页
 * 
1. 起始位置边界值处理: 同 subList 方法  *
2. 终止位置:无需处理,会自动处理边界问题  *  @param pageSize 每页显示的数量  *  @param pageNum  当前页码  * @version v1.0  * @author wu  * @date 2022/7/31 11:49  */ private List subListJava8(ArrayList list, int pageSize, int pageNum) {     int count = list.size(); // 总记录数     // 计算总页数     int pages = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;     // 起始位置     int start = pageNum <= 0 ? 0 : (pageNum > pages ? (pages - 1) * pageSize : (pageNum - 1) * pageSize);     // 终止位置     int end = pageSize ;     return list.stream().skip(start).limit(pageSize).collect(Collectors.toList()); }


  4、使用 Lists 工具类的 partition 分页

/**@Description: 使用 Lists 工具类的 partition 分页
 * 
1. 页码边界值处理:小于等于0,情况处理; 页码大于 (总页数-1) 情况处理  *
2. 总页数-1 ,原因是:list集合索引是从0开始的。  *  @param pageSize 每页显示的数量  *  @param pageNum  当前页码  * @version v1.0  * @author wu  * @date 2022/7/31 11:55  * @see com.google.common.collect.Lists#partition(java.util.List, int)  */ private List partition(ArrayList list, int pageSize, int pageNum) {     // 将 List 按照 PageSzie 拆分成多个List     List> partition = Lists.partition(list, pageSize);     // 总页数     int pages = partition.size();     pageNum = pageNum <= 0 ? 0 : (pageNum <= (pages - 1) ? pageNum : (pages - 1));     return partition.get(pageNum); }

————————————————
版权声明:本文为CSDN博主「暗武逢天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51406695/article/details/129396808

你可能感兴趣的:(java,python,windows)