因此treemap的
key、
treeset
的集合元素,都需要可以比較大小。集合框架中之比較大小的有兩種方式:
a.自然排序:對於自然排序來說,要求
treemap
中的所有
key都實現
comparable介面,實現該介面時需要實現乙個int compareto(t o)方法,用於判斷當前物件與o物件之間的大小關係。如果該方法返回正整數,則說明當前物件大於
o物件;如果該方法返回
0,說明兩個物件相等;如果該方法返回負整數,則說明當前物件小於
o物件;
jdk的很多類都已經實現了
comparable介面,例如string、
date
、bigdecimal
等。b.定製排序:定製排序需要在建立
treemap
或treeset
時傳入乙個
comparator物件,此時treemap或
treeset
不再要求
key、集合元素本身是可比較大小的,而是由
comparator來負責比較集合元素的大小。comparator本身只是乙個介面,因此建立comparator物件只能是建立它的實現類的物件,comparator的實現類需要實現int compare(t o1, t o2)方法,該方法用於判斷o1、
o2兩個物件的大小,如果該方法返回正整數,則說明
o1大於
o2、如果該方法返回負整數,則說明
o1小於
o2、如果返回
0,則說明兩個物件相等。
Collection框架中實現比較要實現什麼介面
comparable和 comparator介面 如果乙個類的不同物件需要比較大小,那麼就需要實現這兩個介面,根據業務需求定義規則。使用區別 1 comparable介面 是需要比較的類實現自己實現,例如 定義的student類需要比較,需要student類自己實現這個介面,實現comparato ...
集合框架 Collection
collection是集合框架體系中的根介面,它有兩個常用的子介面,別是list和set list 有序 儲存順序和取出順序一致 可重複。實現了list介面的子類以及這些子類的區別 arraylist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,效率高。vector 底層資料結構是陣列,查詢快...
集合框架Collection
collection集合用於儲存物件,長度是可變的,共有的方法有 增 add 刪 remove 獲取 size 判斷 contains,isempetylist 集合是 有順序,可以重複,其中特有的方法有 獲取 get sublist listiterator 改 set arraylist 底層是...