java 加权平均_使用Java 8流计算加权平均值
您可以为此任务创建自己的收集器:
static Collector averagingWeighted(ToDoubleFunction valueFunction, ToIntFunction weightFunction) {
class Box {
double num = 0;
long denom = 0;
}
return Collector.of(
Box::new,
(b, e) -> {
b.num += valueFunction.applyAsDouble(e) * weightFunction.applyAsInt(e);
b.denom += weightFunction.applyAsInt(e);
},
(b1, b2) -> { b1.num += b2.num; b1.denom += b2.denom; return b1; },
b -> b.num / b.denom
);
}
此自定义收集器将两个函数作为参数:一个是返回用于给定流元素的值的函数(作为ToDoubleFunction),另一个函数返回权重(作为ToIntFunction).它使用一个辅助本地类,在收集过程中存储分子和分母.每次接受一个条目时,分子会随着值与其权重的乘积而增加,分母会随着权重而增加.然后整理器将两者的分割返回为Double.
示例用法是:
Map map = new HashMap<>();
map.put(0.7, 100);
map.put(0.5, 200);
double weightedAverage =
map.entrySet().stream().collect(averagingWeighted(Map.Entry::getKey, Map.Entry::getValue));
java 加权平均_使用Java 8流计算加权平均值相关推荐
- java掌握_掌握Java 11的Constantdynamic
java掌握 为了使JVM对动态语言更具吸引力,该平台的第七版已将invokedynamic引入了其指令集. Java开发人员通常不会注意到此功能,因为该功能已隐藏在Java字节码中. 简而言之,通过 ...
- 易语言 java支持_开源Java客户端可以连接易语言服务器
我们的服务端处理客户端的连接请求是同步进行的, 每次接收到来自客户端的连接请求后, 都要先跟当前的客户端通信完之后才能再处理下一个连接请求. 这在并发比较多的情况下会严重影响程序的性能, 为此,我们可 ...
- java 示例_最佳Java示例
java 示例 什么是Java? (What is Java?) Java is a programming language developed by Sun Microsystems in 199 ...
- java 析构函数_《JAVA编程思想》5分钟速成:第5章(初始化和清理)
第五章.初始化和清理 前言 1.初始化顺序(静态成员.非静态成员,构造器.父类构造器)的排序: 2.构造器(constructor)是否可被重写(override)? 3.final, finally ...
- 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...
最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...
- 21点 小游戏 java代码_基于Java的21点扑克游戏的实现
在上次写的比较牌点的扑克游戏上Java扑克游戏(多人多牌数比较游戏)的实现中,添加21点游戏规则,实现21点牌类游戏.具体实现步骤如下:[需要源代码的留QQ,大家一起探讨探讨哈,谢谢啦!] 抽象出规则 ...
- 图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...
在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用. 一.项目设计到的知识 1.MVC设计模式思想(分包) >项目分包 运用这种设计模式的优点: MV ...
- python解析java文件_读取java文件
JAVA通信编程(二)--如何读取java的properties配置文件(插播) 如何读取java的properties配置文件本不属于java通讯编程这个系列的范畴,但是在做一些应用中编写通讯编程需 ...
- java歌_用java实现歌曲串烧高速版(SequenceInputStream的使用)
文章最后有完整测试代码 基本代码如下:(代码注释部分不用看,一步步学习SequenceInputStream用的)import java.io.BufferedInputStream; import ...
- 谷歌去水印java实现_在Java中实现Google的“您的意思是”功能
谷歌去水印java实现 介绍 搜索引擎用户经常因各种原因而拼写错误的搜索词,包括键盘问题(键不起作用),陌生的国际名称(例如Sigmund Freud),意外更改一个字母(Sinpsons)或添加一个 ...
最新文章
- 资源 | 4天学会PyTorch!香港科技大学开放PyTorch机器学习课件资源
- python 几种不同的格式化输出
- 单链表中删除指定值的节点
- 硬核项目 | 用Arduino做一个神奇的悬浮灯!
- 语言语法糖_【c#】几种常用语法糖
- NYOJ47过河问题
- 惊恐的市场洗牌网游市场诞生危机论
- matlab的special函数用法
- 桥接文件中file not found
- 《The Django Book 2.0》中文版笔记
- xp 安装程序在计算机中识别出下列大容量存储设备,大容量存储控制器驱动程序安装步骤[图形]...
- php jquery制作抖音,抖音制作优质脚本的方法在这里
- 论文笔记:气候变化、水循环和植被动态
- 阿里支付系统就该这么设计(万能通用),稳的一批!
- Java个人知识点笔记总结
- Competition4_t3
- 什么是cucumber
- linux+gpfs配置文件,GPFS 在 Linux 集群中的灾难恢复
- html5 交互作品,20个交互动效很棒的网页设计例子
- 相机芯片尺寸及选型公式
热门文章
- java毕业设计鞋类秒杀商城Mybatis+系统+数据库+调试部署
- 使用MySQL存储过程给表批量造数据
- Cisco Packet Tracer 命令大全 【思科交换机模拟器命令大全】
- 学生管理系统——数据库表设计
- 干货!推荐系统中的异构关系学习
- 红米ac2100路由器刷入openwrt教程
- ipa包安装到苹果手机中的几种方式——Qt for IOS
- 怎么打不开电脑计算机呢,双击我的电脑打不开怎么办
- mysql里一个中文多少个字节_mysql里中文占多少个字节?
- 《UnityAPI.Cloth布料》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Cloth+friction+useGravity+normals+立钻哥哥++OK++)