java中Stream流的使用


前言

我们常常需要将一个容器转化成另一个容器,或是对这个容器中的数据进行批量处理,这时使用Stream流可以大大减少我们的工作量。


一、stream、collect方法

List.stream();//将List转化成stream流;
Stream.collect(转化规则)//将List按照转化规则转化成stream流;

二、转换成其他容器

1.转化成新的List

List<> new = old.stream().collect(Collectors.toList());

2.转化成Map

Map<T,E> new= old.stream().collect(Collectors.toMap(T,E));

3.转换成set集合

Set<> new =old.stream().Collectors.toSet();

4.转换成特定的set集合

TreeSet<> new =old.stream().Collectors.toCollection(TreeSet::new);

二、其他功能

1.过滤

old.stream().filter(f->f.id==5);

保留Stream流中满足filter()中的条件的元素转换成新List,例中条件为id=5的元素。

2.映射

old.stream().map(f.getid());

将Stream流中的元素映射成新的Stream流,例中为从f映射到f的id字段。

3.计算

old.stream().reduce((a, b) -> a + b);

可以理解为
sum = stream流中第一个元素
sum = reduce中方法(sum,下一个元素)
return sum
例中为求所有元素的和。

old.stream().reduce(1,(a, b) -> a + b);

可以理解为
sum = reduce中第一个参数
sum = reduce中方法(sum,下一个元素)
return sum
例中为求所有元素的和并加上1。

4.取前几个元素

old.stream().limit(4);

例中为取前四个元素

5.排序

old.stream().sorted((f1, f2) -> Integer.compare(f2.getWeight(), f1.getWeight()));

按照sorted中方法对元素排序,例中为按照元素的weight排序。

6.去重

old.stream().distinct();

7.查找

7.1.判断是否存在满足条件的元素

old.stream().anyMatch(f -> f.getid() == 5);

7.2.返回第一个满足条件的元素

old.stream().findFirst(f -> f.getid() == 5);

总结

提示:这里对文章进行总结:

以上就是今天要讲的内容,本文简单介绍了Stream流的使用,有疑问可以在评论区回复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值