文档章节

Stream中的函数

R
 Refresh-LV
发布于 2017/07/25 13:50
字数 485
阅读 4
收藏 0

stream中的筛选函数

@Test
    public void TestAllMatch() {
        List<Dish> list = Arrays.asList(new Dish(true,new BigDecimal(125), 460 , "lufei"),
                new Dish(true,new BigDecimal(125), 245, "suolong"),
                new Dish(true,new BigDecimal(125), 496, "buluke"),
                new Dish(true,new BigDecimal(125), 479, "luobing"),
                new Dish(true,new BigDecimal(150), 125, "shenpin"),
                new Dish(false,new BigDecimal(129), 399, "namei"),
                new Dish(true,new BigDecimal(128),99, "wusuopu"));
        boolean flag = list.stream().allMatch(l -> l.getCalories() >100);
        boolean flag1 = list.stream().noneMatch(l -> l.getCalories() <=100);
        boolean flag2 = list.stream().anyMatch(l -> l.getCalories() <=100);
        System.out.println(flag);
        System.out.println(flag1);
        System.out.println(flag2);
    }

-----------------------------------------------------------------------------------------

stream中的求和函数

@Test
    public void testReduce() {
        List<Integer> nums = Arrays.asList(3, 4, 5, 6, 7);
        int result = nums.stream().reduce(1, (a, b) -> a*b);
        int result1 = nums.stream().reduce(0, (a, b) -> a+b);
        int result2 = nums.stream().reduce(0,Integer::sum);
        System.out.println(result);
        System.out.println(result1);
        System.out.println(result2);
    }

------------------------------------------------------------------------------------------

stream中最大值最小值

@Test
    public void testReduceMax() {
        List<Integer> nums = Arrays.asList(3, 4, 5, 6, 7);
        Optional<Integer> result = nums.stream().reduce(Integer::max);
        Optional<Integer> result1 = nums.stream().reduce(Integer::min);
        Optional<Integer> result2 = nums.stream().reduce((Integer a, Integer b)->a<b?a:b);
        System.out.println(result);
        System.out.println(result1);
        System.out.println(result2);
    }

----------------------------------------------------------------------------------------

Optional简介
Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在。在
上面的代码中,findAny可能什么元素都没找到。Java 8的库设计人员引入了Optional<T>,这
样就不用返回众所周知容易出问题的null了。我们在这里不会详细讨论Optional,因为第10章
会详细解释你的代码如何利用Optional,避免和null检查相关的bug。不过现在,了解一下Optional里面几种可以迫使你显式地检查值是否存在或处理值不存在的情形的方法也不错。
 isPresent()将在Optional包含值的时候返回true, 否则返回false。
 ifPresent(Consumer<T> block)会在值存在的时候执行给定的代码块。我们在第3章
介绍了Consumer函数式接口;它让你传递一个接收T类型参数,并返回void的Lambda
表达式。
 T get()会在值存在时返回值,否则抛出一个NoSuchElement异常。
 T orElse(T other)会在值存在时返回值,否则返回一个默认值。

 

 

© 著作权归作者所有

R
粉丝 1
博文 23
码字总数 7973
作品 0
仙桃
私信 提问
Java8 Stream 语法详解 & 用法实例

本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的)。 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of ...

程序员诗人
2017/09/25
0
0
java8新特性(2)-Stream

Stream初体验 大家可以把Stream当成一个高级版本的Iterator。原始版本的Iterator,用户只能一个一个的遍历元素并对其执行某些操作;高级版本的Stream,用户只要给出需要对其含的元素执行什么...

十二缸帕萨特
2016/04/18
228
0
Java8初体验-Stream语法详解

我们先来看看Java里面是怎么定义Stream的: A sequence of elements supporting sequential and parallel aggregate operations. 我们来解读一下上面的那句话: Stream是元素的集合,这点让S...

markGao
2014/04/14
436
0
fscanf&fgets从文件中按格式读出字符串

1,fsacnf函数介绍 函数原型:int fscanf(FILE stream, char format, arguments...); 参数介绍:FILE *stream 文件指针,即文件流(文件数据存放的地方,要从里面讲数据拿出来); char *fo...

crookes
2014/01/24
2.2K
0
JDK8实践--Java 8系列之Stream的基本语法详解

Stream系列: Java 8系列之Stream的基本语法详解 Java 8系列之Stream的强大工具Collector Java 8系列之重构和定制收集器 Java 8系列之Stream中万能的reduce 概述 继Java 8系列之Lambda表达式...

spinachgit
2018/01/09
42
0

没有更多内容

加载失败,请刷新页面

加载更多

如何编写高质量的 JS 函数(1) -- 敲山震虎篇

本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/7lCK9cHmunvYlbm7Xi7JxQ 作者:杨昆 一千个读者,有一千个哈姆雷特。 此系列文章将会从函数的执行机制、鲁棒性、函...

vivo互联网技术
42分钟前
5
0
学会这5个Excel技巧,让你拒绝加班

在网上,随处都可以看到Excel技巧,估计已看腻了吧?但下面5个Excel技巧会让你相见恨晚。关键的是它们个个还很实用 图一 技巧1:快速删除边框 有时当我们处理数据需要去掉边框,按Ctrl+Shif...

干货趣分享
今天
11
0
JS基础-该如何理解原型、原型链?

JS的原型、原型链一直是比较难理解的内容,不少初学者甚至有一定经验的老鸟都不一定能完全说清楚,更多的"很可能"是一知半解,而这部分内容又是JS的核心内容,想要技术进阶的话肯定不能对这个...

OBKoro1
今天
9
0
高防CDN的出现是为了解决网站的哪些问题?

高防CDN是为了更好的服务网络而出现的,是通过高防DNS来实现的。高防CDN是通过智能化的系统判断来路,再反馈给用户,可以减轻用户使用过程的复杂程度。通过智能DNS解析,能让网站访问者连接到...

云漫网络Ruan
今天
15
0
OSChina 周一乱弹 —— 熟悉的味道,难道这就是恋爱的感觉

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :好久没分享歌了分享张碧晨的单曲《今后我与自己流浪》 《今后我与自己流浪》- 张碧晨 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
3.3K
25

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部