JDK8的stream()

stream:可以理解为一个高级的迭代器。(有点不同)
java.util.stream:表示能应用在一组元素上一次性执行的操作序列。
stream:用户只需要给出对其包含的元素执行的什么操作(可以进行过滤)。

案例:过滤null
List list = Arrays.asList(1,null,3,4,null,null,7);
list.stream() //创建stream的实例
.filter(num -> num !=null) //使用过滤条件
.forEach(l -> System.out.println(l)); //遍历元素并打印

常用的stream操作符
List list = Arrays.asList(1,2,3,4,null,6,7,7,9);
list.stream() //获取其对应的stream对象
.filter(num -> num !=null) //使用过滤条件
.distinct() //去重
.map Tolnt(num -> num*2) //每个元素乘以2
.peek(System.out::println) //元素被消费的时候打印自身
.skip(2) //跳过前两个元素
.limit(4) //返回前四个元素
.sum(); //加和运算

求数组的个数,最大值,最小值,平均值,总和。
//IntSummaryStatistics:集合概要,包含count, min, max, sum, average.。
List list = Arrays.asList(16,22,13,44,25,36,17,57,9);
IntSummaryStatistics stats = list
.stream() //获取stream对象
.mop Toint(x -> x) //格式转换
.summaryStatistics();
System.out.println(“Max:”+stats.getMax());
System.out.println(“Min:”+stats.getMin());
System.out.println(“Sum:”+stats.getSum());
System.out.println(“Average:”+stats.getAverage());

备注:
Arrays.asList()该方法是将数组转化为list。有以下几点需要注意:
 (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)
 (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
 (3)不支持add和remove方法
 
方法的引用:“::”
方法引用是什么? 是lambda表达式的一个简化写法。
方法引用语法:左边是容器( 可以是类名, 实例名) , 中间是” :: “, 右边是相应的方法名。
ObjectReference::methodName
一般方法的引用格式是:
- 静态方法: ClassName::methodName。 如 Object ::equals
- 成员方法:先new Object(),得到类的obj
Instance::methodName。 如Object obj=new Object();obj::equals;
- 构造函数:ClassName::new

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值