我想了解一下排序優(yōu)先度的問(wèn)題
如圖,老師在第79行按照id進(jìn)行了排序,最終結(jié)果符合預(yù)期。然后,老師在第84行按照name進(jìn)行了排序,結(jié)果也符合預(yù)期。但我不理解的是,之前已經(jīng)用Collections.sort(studentList)按照id進(jìn)行了排序,為什么后來(lái)用Collections.sort(studentList, new StudentComparator())按照name進(jìn)行排序就不再考慮之前id的順序,最終輸出的結(jié)果只按照name進(jìn)行排序。
我想知道Collections.sort(studentList, new StudentComparator())中的studentList究竟有何
用處,它之前的排序?yàn)楹伪缓鲆暳?,是因?yàn)镃omparator接口排序的優(yōu)先度大于Cpmparable接口嗎?
希望大家多多指教,謝謝!
2020-03-24
comparator是臨時(shí)的,compareable從默認(rèn)的,也就是說(shuō),當(dāng)你sort(studentList),這個(gè)時(shí)候因?yàn)闆](méi)有給一個(gè)臨時(shí)的comparator,compareable的意思是,當(dāng)沒(méi)有其他的規(guī)則時(shí),按照默認(rèn)的排序。
原理和初始化類(lèi)似,初始化一個(gè)對(duì)象時(shí),如果你不給參數(shù),他就會(huì)按照默認(rèn)的,給了就覆蓋掉。
2020-03-24
還有,不用糾結(jié)這些,第一遍學(xué)的時(shí)候建議了解整個(gè)框架即可,這些可以后來(lái)回過(guò)頭來(lái)再看即可
2020-03-24
1 排序規(guī)則實(shí)現(xiàn)的方法不同
Comparable接口的方法:compareTo(Object o)
Comparator接口的方法:compare(T o1, To2)
2 類(lèi)設(shè)計(jì)前后不同
Comparable接口用于在類(lèi)的設(shè)計(jì)中使用;設(shè)計(jì)初期,就實(shí)現(xiàn)這個(gè)借口,指定排序方式。
Comparator接口用于類(lèi)設(shè)計(jì)已經(jīng)完成,還想排序(Arrays)。