简单工具类


写作初衷:由于日常开发经常需要用到很多工具类,经常根据需求自己写也比较麻烦
网上好了一些工具类例如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;

}


}