forked from rongchao/epmet-cloud-rizhao
13 changed files with 151 additions and 11 deletions
@ -0,0 +1,80 @@ |
|||
package com.epmet.support.normalizing; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* BigDecimal的分值计算 |
|||
* 每一种数据类型的计算都要继承ScoreCalculator并且实现其抽象方法,实现数据类型的转换 |
|||
*/ |
|||
public class BigDecimalScoreCalculator extends ScoreCalculator { |
|||
|
|||
/** |
|||
* 初始化基于原数组的整数分值计算 |
|||
* ☆☆☆ 务必在该构造方法最后调用父类的prepare()方法 ☆☆☆ |
|||
* @param sourceArray 源数据完整数组 |
|||
* @param minScore 分值区间的左边界 |
|||
* @param maxScore 分值区间的右边界 |
|||
* @param correlation 相关性 |
|||
*/ |
|||
public BigDecimalScoreCalculator(BigDecimal[] sourceArray, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) { |
|||
this.sourceArrary = sourceArray.clone(); |
|||
this.minScore = minScore; |
|||
this.maxScore = maxScore; |
|||
this.correlation = correlation; |
|||
prepare4SourceArray(); |
|||
System.out.println("最小值:"+minScore+";最大值:"+maxScore); |
|||
} |
|||
|
|||
/** |
|||
* 初始化基于原数组的整数分值计算 |
|||
* @param sourceList 源数据完整列表 |
|||
* @param minScore 分值区间的左边界 |
|||
* @param maxScore 分值区间的右边界 |
|||
* @param correlation 相关性 |
|||
*/ |
|||
public BigDecimalScoreCalculator(List<BigDecimal> sourceList, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) { |
|||
this.sourceArrary = sourceList.toArray(); |
|||
this.minScore = minScore; |
|||
this.maxScore = maxScore; |
|||
this.correlation = correlation; |
|||
prepare4SourceArray(); |
|||
System.out.println("最小值:"+minScore+";最大值:"+maxScore); |
|||
} |
|||
|
|||
/** |
|||
* 初始化基于边界值的整数分值计算 |
|||
* @param minSourceValue 左边界值 |
|||
* @param maxSourceValue 右边界值 |
|||
* @param minScore 分值区间的左边界 |
|||
* @param maxScore 分值区间的右边界 |
|||
* @param correlation 相关性 |
|||
*/ |
|||
public BigDecimalScoreCalculator(BigDecimal minSourceValue, BigDecimal maxSourceValue, BigDecimal minScore, BigDecimal maxScore, Correlation correlation) { |
|||
|
|||
this.minScore = minScore; |
|||
this.maxScore = maxScore; |
|||
this.minValue = minSourceValue; |
|||
this.maxValue = maxSourceValue; |
|||
this.correlation = correlation; |
|||
prepare4BoundaryValue(); |
|||
System.out.println("最小值:"+minScore+";最大值:"+maxScore); |
|||
} |
|||
|
|||
@Override |
|||
public BigDecimal getMaxFromSourceArray() { |
|||
BigDecimal[] intSourceArrary = (BigDecimal[]) this.sourceArrary; |
|||
return intSourceArrary[intSourceArrary.length - 1]; |
|||
} |
|||
|
|||
@Override |
|||
public BigDecimal getMinFromSourceArray() { |
|||
BigDecimal[] intSourceArrary = (BigDecimal[]) this.sourceArrary; |
|||
return intSourceArrary[0]; |
|||
} |
|||
|
|||
@Override |
|||
public BigDecimal convertValue2BigDecimal(Object sourceValue) { |
|||
return (BigDecimal) sourceValue; |
|||
} |
|||
} |
Loading…
Reference in new issue