Java工具集-统计学工具类

小编 2026-07-14 阅读:448 评论:0
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/102897733

简单工具类

写作初衷:由于日常开发经常需要用到很多工具类,经常根据需求自己写也比较麻烦 网上好了一些工具类例如commom.lang3或者hutool或者Jodd这样的开源工具,但是 发现他们之中虽然设计不错,但是如果我想要使用,就必须要引入依赖并且去维护依赖,有些 甚至会有存在版本编译不通过问题,故此想要写作一个每个类都可以作为独立工具类使用 每个使用者只需要复制该类,到任何项目当中都可以使用,所以需要尊从以下两个原则才能 做到.在此诚邀各位大佬参与.可以把各自用过的工具,整合成只依赖JDK,每个类都能够单独 使用的工具.每个人当遇到业务需求需要使用的时候,只需要到这里单独拷贝一个即可使用. 抛弃传统的需要引入依赖的烦恼.让大家一起来解决你所面临的业务问题吧!

介绍

遵从两大原则

  • 1.绝不依赖JDK以外的源码
  • 2.牺牲代码复用性,每个类都必须是单独的组件,绝不互相引用,做到完全解耦
package *;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: simple_tools
 * @description: 统计学工具类
 * @author: ChenWenLong
 * @create: 2019-11-04 13:44
 **/
@SuppressWarnings("unchecked")
public class StatisticsUtil {

    /**
     * 功能描述:
     * 〈获取中位数〉
     *
     * @params : [numberList]
     * @return : java.util.List<java.lang.Integer>
     * @author : cwl
     * @date : 2019/11/4 14:40
     */
    public static List<Number> getMedian(List<? extends Number> numberList){
        if(null == numberList || numberList.size() == 0){
            throw new RuntimeException("numberList is not be empty or null");
        }
        List<Number> resultList = new ArrayList<>();
        if(numberList.size() % 2 == 0){
            int a = numberList.size()/2;
            int b = numberList.size()/2 - 1;
            resultList.add(numberList.get(a));
            resultList.add(numberList.get(b));
        }else{
            resultList.add(numberList.get(numberList.size()/2));
        }
        return resultList;
    }

    /**
     * 功能描述:
     * 〈获取平均值〉
     *
     * @params : [numberList]
     * @return : java.util.List<java.lang.Number>
     * @author : cwl
     * @date : 2019/11/4 14:45
     */
    public static Number getAverage(List<? extends Number> numberList){
        if(null == numberList || numberList.size() == 0){
            throw new RuntimeException("numberList is not be empty or null");
        }
        double v = getSum(numberList).doubleValue();
        return v / numberList.size();
    }

    /**
     * 功能描述:
     * 〈求和〉
     *
     * @params : [numberList]
     * @return : java.util.List<java.lang.Number>
     * @author : cwl
     * @date : 2019/11/4 14:47
     */
    public static Number getSum(List<? extends Number> numberList){
        if(null == numberList || numberList.size() == 0){
            throw new RuntimeException("numberList is not be empty or null");
        }
        Number result = new Number() {
            @Override
            public int intValue() {
                return 0;
            }

            @Override
            public long longValue() {
                return 0;
            }

            @Override
            public float floatValue() {
                return 0;
            }

            @Override
            public double doubleValue() {
                return 0;
            }
        };
        long longResult = 0;
        int intResult = 0 ;
        double doubleResult = 0;
        float floatResult = 0;
        for (Number number : numberList) {
            if(number.longValue() != 0){
                longResult = longResult + number.longValue();
            }
            if(number.doubleValue() != 0){
                doubleResult = doubleResult + number.doubleValue();
            }
            if(number.intValue() != 0){
                intResult = intResult + number.intValue();
            }
            if(number.floatValue() != 0){
                floatResult = floatResult + number.floatValue();
            }
        }
        return longResult + intResult + doubleResult + floatResult;

    }


}
版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表