Java工具集-统计学工具类
- 2019 年 11 月 7 日
- 筆記
版权声明:本文为博主原创文章,遵循 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; } }