作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写比较两个成绩单的分数的代码,但每次我使用 > 或 < 这样的运算符时,它都会说参数类型未定义。有人可以告诉我我做错了什么吗?
编辑(来自评论):marks
和getMarks
的类型是double[]
。
* @param other
* @return 1 if the average mark of calling object is more than average of parameter object
* -1 if the average mark of calling object is less than average of parameter object
* 0 if the average mark of calling object and the average of parameter object are the same
*/
public int compareTo(ReportCard other) {
if(this.marks > other.getMarks()) {
return 1;
} else if (this.marks < other.getMarks()) {
return -1;
} else {
return 0;
}
} //to be completed
最佳答案
您的代码可以简化为:
public int compareTo(ReportCard other) {
return Double.compare(this.getMarks(), other.getMarks());
}
或者,如果您想创建 Comparator<ReportCard>
而不是实现 Comparable<ReportCard>
,那么你可以这样做:
Comparator<ReportCard> comparator = Comparator.comparingDouble(ReportCard::getMarks);
关于JavacompareTo() 未定义运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923489/
我正在尝试编写比较两个成绩单的分数的代码,但每次我使用 > 或 other.getMarks()) { return 1; } else if (this.marks
我想要实现的是同步这两个函数的结果。这些方法返回数字,指示引用字符串是在排序顺序之前还是之后,或者与给定字符串相同。 JavaScript localeCompare 有许多参数需要设置,但我尝试过的
我是一名优秀的程序员,十分优秀!