class PlayerComparatorByRating implements Comparator<Player> {
@Override
public int compare(Player o1, Player o2) {
return o1.getRating() - o2.getRating();
}
}
很抱歉这个“基本”问题,但我不明白比较功能的作用。我的意思是她比较一个对象的字段(在这种情况下),但它什么时候排序?当返回值<&lt; 0,= 0或&gt; 0。
答案 0 :(得分:0)
它没有排序,它比较。然后,您可以根据该比较对值进行排序
您应该在您的播放器集合和自定义比较器上调用Collections.sort
,如下所示:
List<Player> players = new ArrayList<>();
players.add(...);
Collections.sort(players, new PlayerComparatorByRating();
您将按升序排序玩家。
答案 1 :(得分:0)
compare
函数:
- 如果第一个参数
,则返回负整数o1
小于第二个参数o2
- 如果第一个参数
,则返回零o1
等于第二个参数o2
- 如果第一个参数
,则返回正整数o1
大于第二个参数o2
Collections.sort()
方法
- 如果您的列表包含String元素,则按字母顺序排序。
- 实施
Comparable
界面的类提供自然排序。
更多帮助:https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html