网站目录程序厦门旅游网站设计
compareTo和compare的区别
- compareTo是comparable(可比较的)接口的方法。 
- 当需要对一个对象或一个数组进行排序时,必须实现comparable接口,重写compareTo方法。
 - 重写compareTo方法的对象进行自然排序(也叫整体排序,内部排序)。 
- 通过Collections.sort()或Array.sort()自然排序;
 - 通过TreeSet树形结构自然排序;
 
 
 - compare是comparator(比较器)接口的方法。 
- compare方法中调用的是对象实现comparable接口重写的compareTo方法。
private static final Comparator<User> comparator = new Comparator<User>() {public int compare(User user1, User user2) {return user1.compareTo(user2);//运用User类的compareTo方法比较两个对象 } } - 作为一个外部比较器,通过自身的compare方法定制排序规则 
- 将比较器对象传到Collections.sort()或Arrays.sort()中对目标定制排序;
 - 将比较器对象传到TreeSet树形结构定制排序;
 
 
 - compare方法中调用的是对象实现comparable接口重写的compareTo方法。
 
附:
compareTo的底层实现
compareTo方法底层是timsort算法,插入,归并,快排的高级合并。
参考:https://blog.csdn.net/meiLin_Ya/article/details/80821126
