【发布时间】:2020-07-04 10:31:13
【问题描述】:
我必须按分数对我的回复列表进行排序, 但是分数是双倍值,我尝试实现 Comparator 类的比较方法, 响应没有太大变化,因为双差变为 int 值并最终不对其进行排序,
有没有一种方法可以将这种比较方法用于双精度,或者有没有其他方法可以按分数对我的响应进行排序?
private List<MyResponseByScore> buildMyResponseByScore(MyreposneWithScore MyreposneWithScore) {
return MyresposneWithScore.getAllScores().stream()
.map(x -> new MyResponseByScore(
x.getAllOptions().getMayVal(),
(double) x.getMyScore(),
x.getAllOptions().getSomeVal()))
.collect(Collectors.toList()).sort(new Comparator<MyResponseByScore>() {
@Override
public int compare(MyResponseByScore o1, MyResponseByScore o2) {
if (o1.getScore() > o2.getScore()) {
return o1.getScore() - o2.getScore();
}
return 0;
}
});
【问题讨论】:
-
替换排序---使用 -- .sort(Comparator.comparingDouble(MyResponseByScore::getScore))
-
如果您想比较
compare/compareTo方法的double值,请使用Double.compare(o1.getScore(), o2.getScore())
标签: java sorting compare comparator