1 重点
1.1 3个demo的使用
1.2 anyMatch 中关于 大于n元打印的实际应用场景
2 Demo之anyMatch:
demo:
/** * anyMatch 有任一满足的,则停止继续操作,短路操作 * 需求:如果商品中有任一 大于 n 元的则,打印查出来该商品名称,否则,返回false。 */ @Test public void anyMatchTest(){ Double price = 2000.00; Boolean flag = list.stream().anyMatch(Sku->Sku.getTotalPrice()<price); System.out.println(flag); if(flag){ //List<Sku> list2 = list.stream().filter(Sku->Sku.getTotalPrice()<200).collect(Collectors.toList()); list.stream() .filter(Sku->Sku.getTotalPrice()<price) .map(Sku::getSkuName) .forEach(item->System.out.println(JSONObject.toJSONString(item,true))); } }
打印日志:
true "无人机" "T-shirt" "人生的枷锁" "老人与海" "剑指高效编程" "大头皮鞋" Process finished with exit code 0
3 Demo之allMatch:
demo:
/** * allMatch 有任一不满足的,则停止继续操作,短路操作 */ @Test public void allMatch(){ Boolean bFlag = list.stream().peek(Sku->System.out.println(Sku.getSkuName())).allMatch(Sku->Sku.getTotalPrice()<2000); System.out.println(bFlag); }
打印日志:
无人机 T-shirt 人生的枷锁 老人与海 剑指高效编程 大头皮鞋 杠铃 false Process finished with exit code 0
4 Demo之noneMatch:
demo:
/** * noneMatch 都不满足为true,有任一满足到的为false,短路操作 */ @Test public void noneMatch(){ System.out.println(list.stream().peek(Sku->System.out.println(Sku.getSkuName())).noneMatch(Sku->Sku.getTotalPrice()<2000)); }
打印日志:
无人机 false Process finished with exit code 0