流的终端操作
java
it书童
2021-01-14 16:13:43
0赞
0踩
1796阅读
0评论
匹配
allMatch 只要有一个不符合条件,就中断
/**
* allMatch 终端操作,短路操作
* 只要有一个不符合条件,就中断
*/
@Test
public void allMatchTest() {
boolean match = list.stream()
.peek(sku -> System.out.println(sku.getSkuName()))
.allMatch(sku -> sku.getTotalPrice() > 100);
System.out.println(match);
}
anyMatch 只要有一个满足条件,就返回 true
/**
* anyMatch 终端操作,短路操作
* 只要有一个满足条件,就返回 true
*/
@Test
public void anyMatchTest() {
boolean match = list.stream()
.peek(sku -> System.out.println(sku.getSkuName()))
.anyMatch(sku -> sku.getTotalPrice() > 100);
System.out.println(match);
}
noneMatch 所有都不满足条件才返回 true
/**
* noneMatch 终端操作
* 所有都不满足条件才返回 true
*/
@Test
public void noneMatchTest() {
boolean match = list.stream()
.peek(sku -> System.out.println(sku.getSkuName()))
.noneMatch(sku -> sku.getTotalPrice() > 10000);
System.out.println(match);
}
查找
/**
* 找到第一个
*/
@Test
public void findFirstTest() {
Optional<Sku> optional = list.stream()
.findFirst();
System.out.println(optional.get());
}
/**
* 找到任何一个,串行时也 findFirst 无区别,并行时可能获取任意一个
*/
@Test
public void findAnyTest() {
Optional<Sku> any = list.stream()
.findAny();
System.out.println(any.get());
}
统计
/**
* max的使用
* mapToDouble 将元素映射为 Double 类型元素
*/
@Test
public void maxTest() {
OptionalDouble max = list.stream()
// 获取总价
.mapToDouble(Sku::getTotalPrice)
.max();
System.out.println(max.getAsDouble());
}
/**
* 最小值
*/
@Test
public void minTest() {
OptionalDouble min = list.stream()
.mapToDouble(Sku::getTotalPrice)
.min();
System.out.println(min.getAsDouble());
}
/**
* 获取到流中的所有个数
*/
@Test
public void countTest() {
long count = list.stream().count();
System.out.println(count);
}

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/1024
精品付费
个人开发者通过payjs接入微信支付
4928
0
这一次,真正掌握composer
2679
0
相关推荐
maven 的安装与配置
743
0
java 方法重写
978
0
Java 泛型是什么及详解
752
0
JDBC 连接池与 JDBCTemplate
783
0
springboot 整合连接池
690
0
java使用Thread创建线程类
926
0
java转换流
1115
0
单一职责原则
1425
0
ThreadLocal一次解决老大难问题
1193
0
筛选购物车商品-引出函数式接口妙用
2000
0