1. 程式人生 > >Java中兩種比較器的實現

Java中兩種比較器的實現

程式輸出結果:  為了讓大家較全,我把結果拷貝下來,如下:  通過內部比較器實現:  [id:1,salary=4500.0, id:2,salary=5000.0, id:4,salary=3500.0, id:4,salary=4000.0, id:5,salary=3000.0]  通過外部比較器實現:  [id:1,salary=4500.0, id:2,salary=5000.0, id:4,salary=3500.0, id:4,salary=4000.0, id:5,salary=3000.0] 結果分析:  1)從程式輸出結果中,可以很清晰的看出,兩個比較器均可以實現同樣的需求  2)id都為4的員工編號中,按照薪資來進行排序了 最後,總結一下兩種比較器的區別:
  1)如果使用內部比較器,需要比較的物件必須要實現Comparable介面,並重寫compareTo(  T o)方法,否則不能直接使用Collections中的sort方法,程式會報錯。因為程式不知道你要以何種方式來進行比較。  2)使用外部比較器,需要自己寫一個比較器實現Comparator介面,並實現compare(T o1, T o2)方法,根據自己的需求定義比較規則。使用外部比較器這種方式比較靈活,例如現在需求是按照員工編號和薪資進行排序,以後可能按照姓名進行排序,這時只要再寫一個按照姓名規則比較的比較器就可以了。