Comparable接口只包含一個comparaTo(obj)方法,它由待排序的對象自身實現該接口。
Comparator接口含有compara(obj1,obj2)和equal()兩個方法,它由一個單獨的類繼承該接口實現比較器的作用,其中equal()方法一般不用實現,應爲根基類已經有一個equal()方法,故子類不必再覆蓋該方法。
程序設計最基本的原則就是:將不變的代碼與可變的代碼分離。排序算法是不變的,而排序算法中的比較是隨比較的對象不同而各不相同的,故我們只需重寫比較器,實現對不同對象的排序。