網(wǎng)站焦點(diǎn)圖制作教程百度網(wǎng)站快速優(yōu)化
compareTo和compare的區(qū)別
- compareTo是comparable(可比較的)接口的方法。
- 當(dāng)需要對(duì)一個(gè)對(duì)象或一個(gè)數(shù)組進(jìn)行排序時(shí),必須實(shí)現(xiàn)comparable接口,重寫compareTo方法。
- 重寫compareTo方法的對(duì)象進(jìn)行自然排序(也叫整體排序,內(nèi)部排序)。
- 通過Collections.sort()或Array.sort()自然排序;
- 通過TreeSet樹形結(jié)構(gòu)自然排序;
- compare是comparator(比較器)接口的方法。
- compare方法中調(diào)用的是對(duì)象實(shí)現(xiàn)comparable接口重寫的compareTo方法。
private static final Comparator<User> comparator = new Comparator<User>() {public int compare(User user1, User user2) {return user1.compareTo(user2);//運(yùn)用User類的compareTo方法比較兩個(gè)對(duì)象 } }
- 作為一個(gè)外部比較器,通過自身的compare方法定制排序規(guī)則
- 將比較器對(duì)象傳到Collections.sort()或Arrays.sort()中對(duì)目標(biāo)定制排序;
- 將比較器對(duì)象傳到TreeSet樹形結(jié)構(gòu)定制排序;
- compare方法中調(diào)用的是對(duì)象實(shí)現(xiàn)comparable接口重寫的compareTo方法。
附:
compareTo的底層實(shí)現(xiàn)
compareTo方法底層是timsort算法,插入,歸并,快排的高級(jí)合并。
參考:https://blog.csdn.net/meiLin_Ya/article/details/80821126