java如何对list分页呢?
下文笔者讲述java代码将list分页的方法分享,如下所示
List分页的示例
list分页的实现思路
方式1: 将list转换为stream 借助stream的skip和limit方法即可实现转换 方式2: 使用for循环遍历list,然后对其进行数据获取例:
List分页的示例
List<T> page=list.stream() .skip((pageNo-1)*pageSize).limit(pageSize) .toList();例2:手动拆分list
一个包含100个元素列表 每页显示10个元素 import java.util.ArrayList; import java.util.List; public class PaginationExample { public static void main(String[] args) { // 创建一个包含100个元素的列表 List<Integer> list = new ArrayList<>(); for (int i = 1; i <= 100; i++) { list.add(i); } // 分页参数 int pageNumber = 3; // 页码,从1开始 int pageSize = 10; // 每页大小 // 获取指定页码的分页结果 List<Integer> paginatedList = paginate(list, pageNumber, pageSize); // 打印分页结果 System.out.println("Page " + pageNumber + ": " + paginatedList); } /** * 分页方法 * * @param list 原始列表 * @param pageNumber 页码(从1开始) * @param pageSize 每页大小 * @return 分页后的列表 */ public static <T> List<T> paginate(List<T> list, int pageNumber, int pageSize) { if (list == null || list.isEmpty()) { return new ArrayList<>(); } // 计算起始索引和结束索引 int startIndex = (pageNumber - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, list.size()); // 检查起始索引是否超出范围 if (startIndex >= list.size()) { return new ArrayList<>(); } // 截取指定范围的元素 return list.subList(startIndex, endIndex); } }
代码说明 1.创建列表: - 使用一个循环创建一个包含100个整数的列表。 2.分页参数: - `pageNumber`:页码,从1开始。 - `pageSize`:每页显示的元素数量。 3.分页方法: - `paginate` 方法接受原始列表、页码和每页大小作为参数。 - 计算起始索引 `startIndex` 和结束索引 `endIndex`。 - 使用 `subList` 方法从原始列表中截取指定范围的元素。 - 返回分页后的列表。 注意事项 - 页码从1开始: 在实际应用中,页码通常从1开始,而不是0。 - 边界检查: 确保起始索引和结束索引在有效范围内,避免 `IndexOutOfBoundsException`。 - 空列表处理: 如果原始列表为空或页码超出范围,返回一个空列表。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。