亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我想了解一下排序優先度的問題

如圖,老師在第79行按照id進行了排序,最終結果符合預期。然后,老師在第84行按照name進行了排序,結果也符合預期。但我不理解的是,之前已經用Collections.sort(studentList)按照id進行了排序,為什么后來用Collections.sort(studentList, new StudentComparator())按照name進行排序就不再考慮之前id的順序,最終輸出的結果只按照name進行排序。

我想知道Collections.sort(studentList, new StudentComparator())中的studentList究竟有何

http://img1.sycdn.imooc.com//5e7a087c0001a5ed15020520.jpg

http://img1.sycdn.imooc.com//5e7a087c0001035409820535.jpg

用處,它之前的排序為何被忽視了,是因為Comparator接口排序的優先度大于Cpmparable接口嗎?

希望大家多多指教,謝謝!

正在回答

3 回答

comparator是臨時的,compareable從默認的,也就是說,當你sort(studentList),這個時候因為沒有給一個臨時的comparator,compareable的意思是,當沒有其他的規則時,按照默認的排序。

原理和初始化類似,初始化一個對象時,如果你不給參數,他就會按照默認的,給了就覆蓋掉。

1 回復 有任何疑惑可以回復我~
#1

慕絲1322028 提問者

嗯,感謝回答。我能明白它是怎么運行的。但沒有徹底弄清原理。希望在今后的學習中能明白吧。
2020-03-31 回復 有任何疑惑可以回復我~

還有,不用糾結這些,第一遍學的時候建議了解整個框架即可,這些可以后來回過頭來再看即可

1 回復 有任何疑惑可以回復我~

1 排序規則實現的方法不同

Comparable接口的方法:compareTo(Object o)

Comparator接口的方法:compare(T o1, To2)

2 類設計前后不同

Comparable接口用于在類的設計中使用;設計初期,就實現這個借口,指定排序方式。

Comparator接口用于類設計已經完成,還想排序(Arrays)。


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我想了解一下排序優先度的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號