当前位置: 首页 > news >正文

Java - BigDecimal计算中位数

        日常开发中,如果使用数据库来直接查询一组数据的中位数,就比较简单,直接使用对应的函数就可以了,例如:

        SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(目标列名 ORDER BY 目标列名),',',Count(1)/2),',',-1) AS 目标列名_median

        如果是需要再代码逻辑部分进行中位数的计算,就需要我们自己写一个工具类来支持计算了

    import org.springframework.util.CollectionUtils;public static BigDecimal getMedian (List<BigDecimal> dataList) {if (CollectionUtils.isEmpty(dataList)) {return BigDecimal.ZERO;}//升序排序dataList = dataList.stream().sorted().collect(Collectors.toList());//生成中位数BigDecimal median;if (dataList.size() % 2 == 0) {median = (dataList.get(dataList.size() / 2 - 1).add(dataList.get(dataList.size() / 2))).divide(new BigDecimal(2));} else {median = dataList.get(dataList.size() / 2);}return median;}
    public static void main(String[] args) {ArrayList<BigDecimal> dataList1 = com.google.common.collect.Lists.newArrayList(new BigDecimal("0.200010009"), new BigDecimal("0.300010009"), new BigDecimal("0.400010009"), new BigDecimal("0.500010009"), new BigDecimal("0.600010009"));System.out.println("dataList1_median: "+getMedian(dataList1));ArrayList<BigDecimal> dataList2 = com.google.common.collect.Lists.newArrayList(new BigDecimal("0.200010009"), new BigDecimal("0.300010009"), new BigDecimal("0.400010009"), new BigDecimal("0.500010009"));System.out.println("dataList2_median: "+getMedian(dataList2));}Console:
dataList1_median: 0.400010009
dataList2_median: 0.350010009

         一些大的工具类库应该是有支持这种计算的,但我还是想自己在本地写一个工具方法,毕竟到时候万一有问题改起来不是灵活一点么

相关文章:

Java - BigDecimal计算中位数

日常开发中&#xff0c;如果使用数据库来直接查询一组数据的中位数&#xff0c;就比较简单&#xff0c;直接使用对应的函数就可以了&#xff0c;例如&#xff1a; SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(目标列名 ORDER BY 目标列名),,,Count(1)/2),,,-1) AS 目标列名_…...

Tensorflow2如何读取自制数据集并训练模型?-- Tensorflow自学笔记13

一. 如何自制数据集&#xff1f; 1. 目录结构 以下是自制数据集-手写数字集, 保存在目录 mnist_image_label 下 2. 数据存储格式 2.1. 目录mnist_train_jpeg_60000 下存放的是 60000张用于测试的手写数字 如 : 0_5.jpg, 表示编号为0&#xff0c;标签为5的图片 6_1.jpg, 表示…...

JVM系列(七) -对象的内存分配流程

一、摘要 在之前的文章中,我们介绍了类加载的过程、JVM 内存布局和对象的创建过程相关的知识。 本篇综合之前的知识,重点介绍一下对象的内存分配流程。 二、对象的内存分配原则 在之前的 JVM 内存结构布局的文章中,我们介绍到了 Java 堆的内存布局,由 年轻代 (Young Ge…...

Apache Ignite 在处理大规模数据时有哪些优势和局限性?

Apache Ignite 在处理大规模数据时的优势和局限性可以从以下几个方面进行分析&#xff1a; 优势 高性能&#xff1a;Ignite 利用内存计算的优势&#xff0c;实现了极高的读写性能&#xff0c;通过分布式架构&#xff0c;它可以将数据分散到多个节点上&#xff0c;从而实现了并…...

怎么利用NodeJS发送视频短信

随着5G时代的来临&#xff0c;企业的数字化转型步伐日益加快&#xff0c;视频短信作为新兴的数字营销工具&#xff0c;正逐步展现出其大的潜力。视频群发短信以其独特的形式和内容&#xff0c;将图片、文字、视频、声音融为一体&#xff0c;为用户带来全新的直观感受&#xff0…...

WebAPI(三)、 DOM 日期对象Date;获取事件戳;根据节点关系查找节点

文章目录 DOM1. 日期对象(1)、日期对象方法(2)、时间戳(3)、下课倒计时 2. 节点操作(1)、 查找节点&#xff08;根据节点关系找&#xff09;(2)、 增加节点&#xff1a;创建create、追加append、克隆clone(3)、 删除节点remove DOM 1. 日期对象 日期对象就是用来表示时间的对…...

012.Oracle-索引

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…...

SSL 证书 | 免费获取与自动续期全攻略

前言 随着互联网的不断发展&#xff0c;网站的安全性越来越受到人们的关注。 SSL证书 作为一种保障网站安全的重要手段&#xff0c;已经成为了许多网站的必备配置。 以前阿里云每个账号能生成二十个期限 1 年的免费 SSL 证书&#xff0c;一直用&#xff0c;还挺香&#xff0…...

达梦数据库管理员常用SQL(一)

达梦数据库管理员常用SQL(一) 数据库基本信息数据库参数信息表空间信息日志文件信息进程和线程信息会话连接信息SQL执行信息等待事件信息事务和锁信息数据库基本信息 --查询数据库内部版本号 select id_code; select build_version from v$instance; select * from v$versi…...

HttpUtils工具类(三)OKHttpClient使用详细教程

OkHttpClient 是一个由 Square 公司开发的 HTTP 客户端库&#xff0c;用于在 Android 和 Java 应用中进行网络请求。它支持同步和异步请求、连接池、超时设置、拦截器等功能&#xff0c;适合用于高性能网络请求&#xff0c;特别是在需要处理复杂的网络操作时。 一、OKHttpClien…...

重生奇迹MU老大哥剑士职业宝刀未老

重生奇迹MU中&#xff0c;老大哥剑士职业一直以来备受玩家们的喜爱。这个职业不仅拥有强大的攻击力、防御力和战斗技巧&#xff0c;而且还能够通过使用各种宝刀来增强自身的战斗能力。即便经过了多年的沉淀&#xff0c;老大哥剑士依然是一名宝刀未老的男人&#xff0c;仍然能够…...

关于Netty详细介绍,Netty原理架构解析

Netty 是什么 1&#xff09;Netty 是 JBoss 开源项目&#xff0c;是异步的、基于事件驱动的网络应用框架&#xff0c;它以高性能、高并发著称。所谓基于事件驱动&#xff0c;说得简单点就是 Netty 会根据客户端事件&#xff08;连接、读、写等&#xff09;做出响应&#xff0c;…...

在Unity环境中使用UTF-8编码

为什么要讨论这个问题 为了避免乱码和更好的跨平台 我刚开始开发时是使用VS开发,Unity自身默认使用UTF-8 without BOM格式,但是在Unity中创建一个脚本,使用VS打开,VS自身默认使用GB2312(它应该是对应了你电脑的window版本默认选取了国标编码,或者是因为一些其他的原因)读取脚本…...

零工市场小程序:自由职业者的日常工具

零工市场小程序多功能且便捷&#xff0c;提供了前所未有的灵活性和工作效率。这类小程序不仅改变了自由职业者的工作方式&#xff0c;也重塑了劳动力市场的格局。 一、零工市场小程序的特点 即时匹配&#xff1a;利用先进的数据算法&#xff0c;零工市场小程序能够快速匹配自由…...

【Http 每日一问,访问服务端的鉴权Token放在header还是cookie更合适?】

结论先行&#xff1a; token静态的&#xff0c;不变的&#xff0c;放在header里面。 典型场景 &#xff0c;每次访问时需要带个静态token请求服务端&#xff0c;向服务端表明是谁请求&#xff0c;此时token也可以认为是个固定的access-key。token动态的&#xff0c;会失效&…...

vue2+ueditor集成秀米编辑器

一、百度富文本编辑器 1.首先下载 百度富文本编辑器 下载地址&#xff1a;GitHub - fex-team/ueditor: rich text 富文本编辑器 2.把下载好的文件整理好 放在图片目录下 3. 安装插件vue-ueditor-wrap npm install vue-ueditor-wrap 4.在你所需要展示的页面 引入vue-uedito…...

[网络]HTTP协议 Cookie与Session

一、Cookie 1.1 定义 HTTP Cookie&#xff08;也称为 Web Cookie、浏览器 Cookie 或简称 Cookie&#xff09;是服务器发送到 用户浏览器并保存在浏览器上的一小块数据&#xff0c;它会在浏览器之后向同一服务器再次发 起请求时被携带并发送到服务器上。通常&#xff0c;它用于…...

安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景

随着科技的不断进步&#xff0c;增强现实&#xff08;AR&#xff09;技术逐渐在多个领域展现出其独特的优势&#xff0c;尤其是在安保和安防方面。AR眼镜凭借其先进的功能&#xff0c;在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…...

2024 第十二届重庆国际植保双交会暨新型肥料农药产业博览会

2024 第十二届重庆国际植保双交会暨新型肥料农药产业博览会&#xff0c;引领农业新未来 农业&#xff0c;是人类生存的基石&#xff0c;是社会发展的保障。而肥料和农药&#xff0c;作为农业生产的重要投入品&#xff0c;其品质和技术的不断创新&#xff0c;直接关系着农业的可…...

用“说”智能控制灯具开关语音识别芯片NRK3603

用“说”智能控制灯具开关是一种基于语音识别技术的智能家居设备&#xff0c;它通过内置的语音识别芯片&#xff0c;利用离线识别算法&#xff0c;将用户的语音指令实现对灯具的控制&#xff0c;NRK3603语音识别芯片成为客户低成本的离线语音识别方案。 功能特性&#xff1a; …...

YimMenu终极指南:5分钟学会GTA5最强安全增强工具

YimMenu终极指南&#xff1a;5分钟学会GTA5最强安全增强工具 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

魔兽争霸3 Windows 11兼容性终极解决方案:让你的经典游戏重获新生

魔兽争霸3 Windows 11兼容性终极解决方案&#xff1a;让你的经典游戏重获新生 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在Windo…...

SAP PP顾问必看:手把手教你用增强PPCO0001实现CO02工单变更记录(附完整ABAP代码)

SAP PP顾问实战&#xff1a;深度解析PPCO0001增强实现CO02工单变更审计 在制造业SAP实施项目中&#xff0c;生产工单的变更追踪一直是合规审计的重点难点。当用户通过CO02事务码修改工单时&#xff0c;标准系统提供的变更记录功能存在明显局限——既无法满足精细审计需求&…...

VRCT:VRChat跨语言沟通解决方案

VRCT&#xff1a;VRChat跨语言沟通解决方案 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 在全球化虚拟社交时代&#xff0c;语言壁垒成为VRChat用户跨国交流的最大障碍。当日本玩家用…...

快马平台十分钟搭建vmware虚拟机web管理原型,告别环境配置烦恼

最近在做一个虚拟化相关的项目&#xff0c;需要快速搭建一个VMware虚拟机管理工具的原型。传统方式需要本地安装各种软件&#xff0c;配置环境特别麻烦。后来发现用InsCode(快马)平台可以十分钟搞定&#xff0c;分享下我的实现过程。 项目规划 首先明确原型需要实现的核心功能&…...

如何快速解决API开发痛点:5个技巧让Insomnia成为你的跨平台测试神器

如何快速解决API开发痛点&#xff1a;5个技巧让Insomnia成为你的跨平台测试神器 【免费下载链接】insomnia The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. 项目地址: https://gitcode.com/g…...

基于Vue的禄劝秀屏智慧社区管理系统[vue]-计算机毕业设计源码+LW文档

摘要&#xff1a;随着城市化进程的加速&#xff0c;社区管理面临着诸多挑战。为了提高禄劝秀屏社区的管理效率和服务质量&#xff0c;本文设计并实现了基于Vue的禄劝秀屏智慧社区管理系统。该系统采用前后端分离的架构&#xff0c;前端使用Vue框架构建用户界面&#xff0c;后端…...

KeySequence:嵌入式USB HID键盘序列控制库

1. 项目概述KeySequence 是一款面向嵌入式 USB HID 键盘设备的轻量级序列控制库&#xff0c;专为 Arduino&#xff08;如 Leonardo、Micro、Pro Micro&#xff09;与 ESP32&#xff08;特别是 ESP32-S3&#xff09;平台设计。其核心目标并非替代底层 HID 协议栈&#xff0c;而是…...

探索未来开发模式:在快马平台体验codex级ai全链路辅助开发

今天想和大家聊聊一个特别有意思的话题&#xff1a;AI辅助全链路开发。最近我在InsCode(快马)平台上体验了一把类似Codex级别的AI开发助手&#xff0c;整个过程就像有个懂技术的搭档在身边&#xff0c;从需求分析到代码生成一气呵成&#xff0c;特别适合想快速验证idea的开发者…...

【变分自编码器】突破性优化:sd-vae-ft-mse重构图像生成质量的技术测评

【变分自编码器】突破性优化&#xff1a;sd-vae-ft-mse重构图像生成质量的技术测评 【免费下载链接】sd-vae-ft-mse 项目地址: https://ai.gitcode.com/hf_mirrors/stabilityai/sd-vae-ft-mse 在数字图像生成领域&#xff0c;如何在保持高效计算的同时突破细节还原瓶颈…...