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