1. 程式人生 > >Java辨別 TreeMap和TreeSet的區別與聯絡

Java辨別 TreeMap和TreeSet的區別與聯絡

TreeSet要求存放的物件所屬的類必須實現Comparable介面,該介面提供了比較元素的compareTo()方法,當插入元素時會回撥該方法比較元素的大小。

TreeMap要求存放的鍵值對對映的鍵必須實現Comparable介面從而根據鍵對元素進行排序。

Collections工具類的sort方法有兩種過載的形式,

第一種要求傳入的待排序容器中存放的物件比較實現Comparable介面以實現元素的比較;

第二種不強制性的要求容器中的元素必須可比較,但是要求傳入第二個引數,引數是Comparator介面的子型別(需要重寫compare方法實現元素的比較),相當於一個臨時定義的排序規則,其實就是通過介面注入比較元素大小的演算法,也是對回撥模式的應用(Java中對函數語言程式設計的支援)。