Stream系列(五)Min Max Average方法使用
最小值,最大值,平均值
EmployeeTestCase.java
package com.example.demo; import lombok.Data;
import lombok.ToString;
import lombok.extern.log4j.Log4j2;
import org.junit.Test; import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.LongStream;
import java.util.stream.Stream; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; @Log4j2
public class EmployeeTestCase extends BaseTest{
@Test
public void minMaxAverage() {
Employee employeeMaX = list.stream().max(Comparator.comparing(Employee::getSalary)).orElse(null);
assertEquals("Michael",employeeMaX.getName());
Employee employeeMin = list.stream().min(Comparator.comparing(Employee::getSalary)).orElse(null);
assertEquals("Alex",employeeMin.getName());
double dMax = list.stream().mapToDouble(e -> e.getSalary()).max().orElse(0.00);
assertTrue(dMax == 2000);
double dMin = list.stream().mapToDouble(e -> e.getSalary()).min().orElse(0.00);
assertTrue(dMin == 1000);
double dAverage = list.stream().mapToDouble(e -> e.getSalary()).average().orElse(0.00);
log.info("dAverage:{}",dAverage);
}
}
BaseTest.java
package com.example.demo; import java.util.Arrays;
import java.util.List; public class BaseTest {
protected static final List<Employee> list = Arrays.asList(
new Employee(1, "Alex", 1000),
new Employee(2, "Michael", 2000),
new Employee(3, "Jack", 1500),
new Employee(4, "Owen", 1500),
new Employee(5, "Denny", 2000)); protected static final List<List<Employee>> listFlat = Arrays.asList(
Arrays.asList(new Employee(1, "Alex", 1000),
new Employee(2, "Michael", 2000)),
Arrays.asList(new Employee(3, "Jack", 1500),
new Employee(4, "Owen", 1500)),
Arrays.asList(new Employee(5, "Denny", 2000)));
}
关注公众号,坚持每天3分钟学习
Stream系列(五)Min Max Average方法使用的更多相关文章
- Stream系列(一)Filter方法使用
Filter 是过滤器,也可以当查询方法使用 EmployeeTestCase.java package com.example.demo; import lombok.extern.log4j.Lo ...
- Stream系列(七)distinct方法使用
EmployeeTestCase.java package com.example.demo; import lombok.Data; import lombok.ToString; import l ...
- Stream系列(六)Match方法使用
条件比配 视频讲解 https://www.bilibili.com/video/av77403655/ EmployeeTestCase.java package com.example.demo; ...
- Stream系列(四)Sorted方法使用
排序和反向排序 EmployeeTestCase.java package com.example.demo; import lombok.Data; import lombok.ToString; ...
- Stream系列(三) FlatMap方法使用
将多维嵌套列表转换为单维列表 EmployeeTestCase.java package com.example.demo; import lombok.Data; import lombok.ToS ...
- Stream系列(二)Map方法使用
Stream 将List 里面的对象转换为新的对象 EmployeeTestCase.java package com.example.demo; import lombok.Data; import ...
- Stream系列(九)Collector方法使用
toMap toList toCollection joining 视频讲解:https://www.bilibili.com/video/av77800638/ EmployeeTestCase.j ...
- Stream系列(十三) GroupingBy方法使用
分组 视频讲解 https://www.bilibili.com/video/av78225682/ EmployeeTestCase.java package com.example.demo; i ...
- Stream系列(十一)SummarizingDouble方法使用
汇总 视频讲解: https://www.bilibili.com/video/av78011675/ EmployeeTestCase.java package com.example.demo; ...
随机推荐
- webpack 4.x 初级学习记录
首先声明下,本人不擅长文字表达,文采不行,所以文章中文字较少,请看代码,初级学习,不足之处请多多指教 GitHub链接 看云kancloud [TOC] webpack 4.x 安装 首先需要在全局中 ...
- 源码学习系列之SpringBoot自动配置(篇一)
源码学习系列之SpringBoot自动配置源码学习(篇一) ok,本博客尝试跟一下Springboot的自动配置源码,做一下笔记记录,自动配置是Springboot的一个很关键的特性,也容易被忽略的属 ...
- django-URL重定向(八)
HttpResponseRedirect()不常用 redirect(to,permanent=False,*args,**kwargs) to:指重定向的位置,可以是视图,也可以是url地址,也可以 ...
- accesskey附上一些实例
HTML accesskey属性与web自定义键盘快捷访问 本文地址:http://www.zhangxinxu.com/wordpress/?p=6142 可能很多小伙伴都不知道,我们只要在HTML ...
- day3------基本数据类型int, bool, str,list,tuple,dict
基本数据类型(int, bool, str,list,tuple,dict) 一.python基本数据类型 1. int 整数. 主要用来进行数学运算 2. str 字符串, 可以保存少量数据并进 ...
- QTCreator增加帮助文档
1.下载QT库的帮助文档,是qch格式的. 2.在QTCreator的->Tools->Options->Help->Add增加下载的qch文件即可.
- Python项目生成所有依赖包的清单
最近写完的自动化脚本,分享给同事的时候发现依赖包很难解决(使用的不是virtualenv环境).想起来之前看开源接口平台项目的时候可以一键下载依赖包,于是就找到了第三方包pipreqs,可以自动帮助我 ...
- python学习之【第十篇】:Python中的内置函数
1.前言 内置函数,就是Python内部预先定义好的函数,可以直接使用,Python中内置函数有以下这么多个: 2.map() 描述: map() 会根据提供的函数对指定序列做映射.第一个参数 fun ...
- Linux下安装nexus
下载地址:https://help.sonatype.com/repomanager3/download tar xf nexus-linux-3.19.1-01.tar.gz cd nexus-li ...
- 6. SOFAJRaft源码分析— 透过RheaKV看线性一致性读
开篇 其实这篇文章我本来想在讲完选举的时候就开始讲线性一致性读的,但是感觉直接讲没头没尾的看起来比比较困难,所以就有了RheaKV的系列,这是RheaKV,终于可以讲一下SOFAJRaft的线性一致性 ...