集合

(排序規則:就是實現Comparable<T>接口,實現接口的抽象方法compartTo(T o))
(八大基本元素對應的類都有排序規則)
掌握:
List(接口)
ArrayList(實現類)(實際開發用的多)
(查詢多)(底層爲數組)

LinkedList(實現類)
(更新多)(底層爲鏈表)

相同點
1.功能相同
2.順序與加入順序相同(順序一定)
3.有下標,可手動排序
4.同一元素可加入多次
5.元素可無排序規則,有規則的可手動sort()排序,無規則的不能手動sort()方法
6.可使用Collections.sort(list)方法(順序)排序(以ASCII碼排序)
Collections.reverse(list);(倒序排序)
Collections.shuffle(list);(洗牌)
必要條件:list所屬類必須實現Comparable接口且要實現其抽象方法compare(T o);
compare(T o);方法是用於實現排序規則的
(這是一個回調方法,當前對象、參數所代表的對象,共兩個對象)

不同點:
ArrayList 
底層爲數組,適用於查詢
LinkedList
底層爲鏈表,適用於數據更新(修改,添加,刪除)

這兩個實現類都只有List接口的抽象方法的實現-->完全可以使用List去引用




Set(接口)
        HashSet(實際開發用的多)
        TreeSet
1.相同點
1)沒有下標
2)方法相同(功能不同)
3)不可手動排序
4)元素順序與加入順序無關
5)同一元素不可加入多次
2.不同點
1)HashSet:
元素順序不可測,與加入順序無關(與數學上的集合概念一樣),
對元素無要求,
底層是Hash算法,所以查詢速度快(沒有ArrayList快)
2)TreeSet:
元素順序與元素的排序規則有關,
對元素有要求,即要求元素必須有排序規則,
底層算法是樹,查詢慢,插入快



Map(接口)
        HashMap
        TreeMap
(兩個的底層與Set中的一樣,實際上HashSet的底層是HashMap,HashMap的底層是Hash算法;
TreeSet的底層是TreeMap,TreeMap的底層是二叉樹)

1.相同點
        1)元素都是鍵值對
2)沒有下標
3)方法相同(功能不同)
4)不可手動排序
5)元素順序與加入順序無關
6)同一元素不可加入多次

2.不同點
1)HashMap:
元素順序不可測,與加入順序無關(與數學上的集合概念一樣),
對元素無要求,
底層是Hash算法,所以查詢速度快(沒有ArrayList快)
2)TreeMap:
元素順序與元素的鍵的排序規則有關,
對元素的鍵有要求,即要求元素的鍵必須有排序規則,
底層算法是樹,查詢慢,插入快




發佈了29 篇原創文章 · 獲贊 9 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章