【Java】【Stream流】分页

在Java开发中,使用Java自带Stream流的API来进行开发是一种常见的做法。

下面是一个简单的例子:

假设我们有一个包含100个数据项的列表。我们需要按照每页10个数据进行分页,并返回指定页码的数据。可以使用Java 8中的流来实现分页:

List<String> data = new ArrayList<>(100); // 假设有100个数据项
int pageNum = 5; // 需要返回第5页的数据
int pageSize = 10; // 每页10个数据

List<String> pageData = data.stream()
    .skip((pageNum - 1) * pageSize) // 跳过前面的数据项
    .limit(pageSize) // 取出指定数量的数据
    .collect(Collectors.toList()); // 收集数据

System.out.println(pageData); // 打印第5页的数据

在上面的代码中,我们使用了skip()方法来跳过前面的数据项,使用limit()方法来取出指定数量的数据。最后使用collect()方法将数据收集到一个列表中。

这种方法的好处是可以避免一次性加载所有数据,减小内存占用,提高程序的性能。

下面是个demo

List<String> dataList = new ArrayList<>(); // 假设 dataList 为原始数据列表
int pageSize = 10; // 每页记录数
int pageNumber = 2; // 当前页数

List<String> pageList = dataList.stream()
    .skip((pageNumber - 1) * pageSize) // 跳过前面无用的记录
    .limit(pageSize) // 获取指定记录数
    .collect(Collectors.toList()); // 将结果集合并为列表

// 打印分页数据
pageList.forEach(System.out::println);
 

你可能感兴趣的:(java,开发语言,后端,spring,boot,maven)