Comparator
接口中有一个方法int compare(T o1, T o2)
。这个方法返回值是int类型,如果返回值小于0,说明比较结果是o1<o2,如果返回值等于0,说明比较结果是o1=o2,如果返回值大于0,则说明比较结果是o1>o2。
通过Comparator接口可以实现对排序的精确控制,例如:
Arrays.sort(intervals, new Comparator<int[]>() {
public int compare(int[] interval1, int[] interval2) {
return interval1[1] - interval2[1];
}
});
以上代码就按照interval数组的第二位进行从小到大排序。
需要注意的是,sort
方法默认是按照返回结果从小到大进行排序,如果我们需要从大到小则在实现比较器大时候将返回结果乘以-1即可