第十二章、Set集合(續)
阿新 • • 發佈:2020-12-05
Set集合
Set集合是用於無序儲存不可重複的元素集合。 Set集合的實現類: HashSet LinkedHashSet TreeSet (1)HashSet HashSet是基於雜湊表的Set集合 1.需要使用hashCode演算法計算元素的hash值 2.基於雜湊表做實現 3.實現了Set介面 HashSet集合儲存步驟: 1.使用雜湊演算法計算元素對應的雜湊值,使用此雜湊值作為地址儲存 2.判斷此雜湊值對應的位置上是否已經存有元素 3.若沒有就將元素儲存在該位置上 4.若有則使用equals方法判斷兩個物件是否相等,相等就不儲存,不相等則與上一個元素存在一起 (2)LinkedHashSet 是基於雙向連結串列和雜湊表、繼承自HashSet的Set集合。 特點:有序、不可重複 (3)TreeSet 是基於紅黑樹,實現了Set集合,具有排序功能的Set集合。
排序介面
Comparable介面 使實現類自身具備某種比較規則以便對其物件進行自然排序的介面。 自然排序:是要求自自定義類實現Comparable介面並重寫其compareTo(T o) 方法,在此方法中依據xx屬性進行排序的演算法。 Comparator比較器 在外部自定義比較規則以便容器對其儲存資料進行定製排序的物件。 定製排序:是要求自定義類實現Comparator介面並重寫其compare(T o1, T o2) 方法,在此方法中依據xx屬性 進行排序的演算法,也稱為比較器排序。 Comparable介面 實現該介面的類具有排序功能 需要重寫compareTo方法,使用當前物件和引數物件進行比較 Comparator介面 不會對集合中儲存的元素進行修飾 需要自定義比較器類實現該介面,重寫compare方法,比較兩個引數物件 需要將比較器物件以引數形式傳入集合的構造器中
集合選擇
List 如果需要保留儲存順序並保留重複的元素,推薦使用List集合 ArrayList:若查詢較多,推薦使用 LinkedList:若存取較多,推薦使用 Vector:若需要執行緒安全,推薦使用 Set 如果不需要保留儲存順序並需要去除重複的元素,推薦使用Set集合 TreeSet:若需要將元素進行排序,推薦使用 HashSet:如果不要使用排序,使用HashSet,HashSet比TreeSet效率高 LinkedHashSet:若選喲保留儲存順序,又需要去除重複的元素,推薦使用