在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);