JDK8 Stream简单应用-实现分页

本文介绍了如何利用Java 8的Stream API实现数据分页,包括使用filter进行数据过滤,limit和skip实现分页效果,以及map和flatMap进行数据转换。此外,还展示了如何对数据进行排序,并给出了Page类的定义和分页方法的实现,适用于多种数据源的分页需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,功能目的
  平常做一些CRUD业务可能会涉及到查询分页列表的问题,但是有一些业务数据可能不只存在于数据库表之中,可能在ES,mongo,redis等各种数据聚合而成,返回也需要做到有分页效果,因此我们可以利用JDK8的新特性来实现一种简单的分页。

2,功能API-Stream

2.1 筛选与切片
  filter:过滤流中的某些元素
  limit(n):获取n个元素
  skip(n):跳过n元素,配合limit(n)可实现分页
  distinct:通过流中元素的 hashCode() 和 equals() 去除重复元素

Stream<Integer> stream = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14);
Stream<Integer> newStream = stream.filter(s -> s > 5) //6 6 7 9 8 10 12 14 14
.distinct() //6 7 9 8 10 12 14
.skip(2) //9 8 10 12 14
.limit(2); //9 8
newStream.forEach(System.out::println);

2.2 映射
  map:接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
  flatMap:接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流。

List<String> list = Arrays.asList("a,b,c", "1,2,3");
  
//将每个元素转成一个新的且
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值