Stram流 常用方法

!流常用方法
流,只会改变流内数据,不会改变原来的数据,最后需要新容器承接
.filter(name->{return name.indexOf(“libai”)>=0;})
.filter((String name)->{return 11}😉 //参数数据类型可写可节省
.filter((数据类型 变量名)->{return a>3;}) //会将返回值为true的元素保存为新子流
Arrays.stream(arr).map(Pojo::getMoney).filter((Integer num)->{return num>=3;}).forEach(a->{
System.out.println(a);
});
.stream() 将集合,数组转换为流
.map(对象::对象方法) 方法返回值组成的流
.toArray()
无参只能转换为基本数据类型或者object类型数组
.toArray(任意数据类型[]::new)
返回指定数据类型的数组,使用new方法创建
.sorted()
无参默认升序排序
.sorted(Comparator)
匿名内部类.返回值01-o2,升序,o2-o1降序
lambda表达式
.sorted((Integer o1, Integero2)->o1-o2;) //升序
.collect(Collectors.toXXX())
.limit(100L) //获取前100个
.forEach(one流的单个数据->{方法sout等}) 遍历流内数据 //唯一可以修改到原对象方法
.stream().forEach() //同上
.distinct() 去重
转换为集合类
//原始写法
new Comparator(){
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;//升序
}
}
.collect(Collectors.toMap(User::getUsername, User::getAge));
使User类getUsername方法的返回值做为key,getAge方法的返回值做为value
.mapTo(流里单个数据->{return Integer.parseInt()每个数据执行的方法(最后全部流再合并为一个对象)})
.mapToObj(String::valueOf) //转换为字符串流
.stream(users).mapToInt(s->{return Integer.parseInt(s.getUsername());});
.reduce((s1,s2)->s1+s2) //把字符串前后串起来
.anyMatch(a -> a < -1) //返回boolean,判断是否任何一个都满足条件
. parallel();当前流转换为并行流
sequential();当前流转换为并行流
flatMap;支持多级解流
//合并数组集合 stream.of()
//合并数组Arrays::stream
//合并数字数组
Stream.of(arr1,arr2).flatMapToInt(Arrays::stream)
//合并其他数组
Stream.of(s,s1).flatMap(Arrays::stream)
//合并集合Collection::stream
Stream.of(list,list1).flatMap(Collection::stream)
即数组用Arrays::stream,集合用Collection::stream
都是flatMap,基本数字型需要to
防止空指针异常,多家fileter
roleVos.stream()
.filter(o->o
null)
.map(RoleVo::getPowerList)
.filter(o->onull)
.flatMap(Collection::stream)
.filter(o->o
null)
.map(PowerVo::getPowerName)
.filter(o->o==null)
.collect(Collectors.toSet());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值