我有一个充满整数的列表:
List collection = new ArrayList();
collection.add(this.score1);
collection.add(this.score2);
collection.add(this.score3);
现在我想将最高分数与每个单独的分数进行比较,看看哪个分数最高。直觉上我试着这样做:
String highestScore;
if(Collections.max(collection) == this.score1) {
highestScore = "Score 1";
}
if(Collections.max(collection) == this.score2) {
highestScore += ", Score 2";
}
if(Collections.max(collection) == this.score3) {
highestScore += ", Score 3";
}
然而,
Collections.max(collection) == this.score1
Collections.max(collection) == this.score2
Collections.max(collection) == this.score3
都给我错误:
不兼容的操作数类型 Comparable 和 int
然而,这似乎工作:
int highestScoreValue = Collections.max(collection);
现在怎么可能?
为什么 Java 允许将 int 设置为Collections.max(collection)
,但不允许将 int 与 进行比较Collections.max(collection)
?