java 8中stream()的使用

java8 .stream()

stream()把一个源数据,可以是集合,数组,I/O channel, 产生器generator 等,转化成流

1.filter()

filter()方法用于通过设置的条件过滤出元素

filter()方法返回菜肴流,而collect()方法将流转换为列表。 “收集”操作称为终端操作。

现在让我们说,我们要获取前三个包含300多个卡路里的菜肴。 流支持limit(n)方法,该方法返回另一个不超过给定大小的流。 请求的大小作为参数传递给limit。


List<Dish> menu = ....
List<Dish> threeHighCalaricDish = menu.stream()
                                         .filter(d -> d.getCalaries() > 300)
                                         .limit(3)
                                         .collect(Collectors.toList());


list.stream().filter(c -> c.getName().equals("xxx"));
list.stream().filter(c -> c.getName().equals("xxx")).collect(Collectors.toList());

2.collect()

Collectors类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串,collect()内可以用collectors进行转换:

2.1 将集合通过某个参数进行拼接,如下将name进行拼接

.collect(Collectors.toList());//列表
.collect(Collectors.joining(", "));//字符串

2.2 将集合需要的参数数据转化成Map,如下将id与name转化成Map

例如:

		// 转为Map
        Map<Long, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大胖东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值