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