功能比较。它何时会排序

时间:2016-12-10 21:15:18

标签: java collections interface compare

class PlayerComparatorByRating implements Comparator<Player> {

    @Override
    public int compare(Player o1, Player o2) {
       return o1.getRating() - o2.getRating();
    }
}

很抱歉这个“基本”问题,但我不明白比较功能的作用。我的意思是她比较一个对象的字段(在这种情况下),但它什么时候排序?当返回值<&lt; 0,= 0或&gt; 0。

2 个答案:

答案 0 :(得分:0)

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

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

您将按升序排序玩家。

答案 1 :(得分:0)

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


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