功能比较.它何时排序


class PlayerComparatorByRating implements Comparator<Player> {
    @Override
    public int compare(Player o1, Player o2) {
       return o1.getRating() - o2.getRating();
    }
}

抱歉,这个"基本"问题,但我不明白比较函数的作用。我的意思是她比较一个对象的字段(在这种情况下),但是什么时候可以分类?当返回值为&lt时;0,= 0或> 0。

它不排序,比较。然后,您可以根据该比较对值进行排序。
您应该在播放器集合和自定义比较器上调用Collections.sort,例如:

List<Player> players = new ArrayList<>();
players.add(...);
Collections.sort(players, new PlayerComparatorByRating();

您将按照上升顺序进行分类。

  1. 在您的代码中,compare函数:
  • 返回a 负整数,如果第一个参数o1小于第二个参数o2
  • 返回,如果第一个参数o1等于第二个参数o2
  • 返回a Postive Integer ,如果第一个参数o1大于第二个参数o2
  1. 要进行排序,您必须明确调用Collections.sort()方法。
  • 如果您的列表包含字符串元素,则按字母顺序排序。
  • 实现Comparable接口的类,提供自然排序


更多帮助:https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

最新更新