所以我有一堂課來比較一部電影的評分。它實現了比較器類,如下所示:返回比較器的比較方法使用雙?
public class FilmComparator implements Comparator<Film> {
private Map<Film, List<Rating>> ratings;
public FilmComparator(Map<Film, List<Rating>> ratings) {
this.ratings = ratings;
}
@Override
public int compare(Film o1, Film o2) {
double average1 = average(o1);
double average2 = average(o2);
return average2 - average1; // I cant do this because it need to return an int
}
private double average(Film f) {
int sum = 0;
for (Rating r : ratings.get(f)) {
sum += r.getValue();
}
return sum/ratings.get(f).size();
}
}
正如您所看到的,平均值可能並不總是一個整數。我想知道如何能夠有一個更準確的比較。例如,當一個對象的平均回報率爲3.6,而另一個對象的回報率爲3.0時,我遇到了問題。對比較的方法,是相同的,但我需要顯示一個區別。這可能嗎?
*「平均可能並不總是一個整數」 *:(// stackoverflow.com/q/7220681) – Tom
也許有利於計算和存儲'average'上[Java中整數的除法]創造 –