集合(19):Collection集合總結
阿新 • • 發佈:2021-12-30
集合(19):Collection集合總結
Collection(介面) 1、List(介面) 元素可以重複,有序(儲存和取出順序一致) --ArrayList類 底層資料結構是陣列,查詢快增刪慢 執行緒不安全的,效率高。 --LinkedList類 底層資料結構是連結串列,查詢慢,增刪快 執行緒不安全的,效率高。 --Vector類 底層資料結構是陣列,查詢快,增刪慢 執行緒安全的,效率低(即使是安全的,我們也不用它,後面有更好的集合替代) 2、Set(介面) 元素唯一,無序 --HashSet類 底層資料結構是雜湊表,元素唯一是由hashCode和equals方法同時保證的 --LinkedHashSet extends HashSet 底層資料結構是雜湊表和雙鏈表,保證了元素唯一和有序 --TreeSet類 底層資料結構是紅黑樹,自平衡二叉樹 根據構造方法的不同提供兩種排序實現方式: ①無參構造--自然排序(要求資料型別的類要實現Comparable介面,實現compareTo方法) ②有參構造--引數是實現了Comparator介面並且重寫了compare方法的物件 a: 自定義一個類實現 b: 匿名內部類的形式實現 3、將來開發的時候,我們應該用誰呢?根據以下幾點考慮出發 (1)元素需要唯一嗎? 需要:優先考慮HashSet 不需要:優先考慮ArrayList (2)需要有序嗎? 優先考慮ArrayList 如果排序的規則是自定義的,優先考慮TreeSet 如果說,開發的要求沒有那麼高也沒有上面的要求,你就用ArrayList Map(介面)元素是由key和value鍵值對組成,key是唯一的,value是可以重複的 --HashMap 當引用資料型別作為key的時候,該型別必須重寫hashCode()和equals()方法,保證唯一 --LinkedHashMap 雜湊表保證唯一(鍵唯一) 連結串列保證有序(儲存和取出順序一致) --TreeMap 當引用資料型別作為key的時候,有兩種排序方式 自然排序 比較器排序(推薦) HashMap與Hashtable的區別: 1、HashMap中的key和value允許為null值,而Hashtable不允許 2、Hashtable是執行緒安全的,HashMap是執行緒不安全的