Open qiyankai opened 3 years ago
老哥,JDK7+以上排序算法不是快排,是timsort算法,需要考虑两个值相等的情况 否则会抛出Comparison method violates its general contract!异常
将tfidfvalue换为包装类型,使用包装类型的compareTo方法 解决方案如下: public Keyword(String name, Double tfidfvalue) { this.name = name; // tfidf值只保留3位小数 this.tfidfvalue = Double.valueOf((double)Math.round(tfidfvalue * 10000) / 10000); }
/** * 为了在返回tdidf分析结果时,可以按照值的从大到小顺序返回,故实现Comparable接口 */ @Override public int compareTo(Keyword o) { return o.tfidfvalue.compareTo(this.tfidfvalue); }
老哥,JDK7+以上排序算法不是快排,是timsort算法,需要考虑两个值相等的情况 否则会抛出Comparison method violates its general contract!异常
将tfidfvalue换为包装类型,使用包装类型的compareTo方法 解决方案如下: public Keyword(String name, Double tfidfvalue) { this.name = name; // tfidf值只保留3位小数 this.tfidfvalue = Double.valueOf((double)Math.round(tfidfvalue * 10000) / 10000); }