Collection(單列集合)
3 List(有序,可重複)
4 ArrayList
5 底層資料結構是數組,查詢快,增删慢
6 線程不安全,效率高
7 Vector
8 底層資料結構是數組,查詢快,增删慢
9 線程安全,效率低
10 LinkedList
11 底層資料結構是連結清單,查詢慢,增删快
12 線程不安全,效率高
13 Set(無序,唯一)
14 HashSet
15 底層資料結構是哈希表。
16 哈希表依賴兩個方法:hashCode()和equals()
17 執行順序:
18 首先判斷hashCode()值是否相同
19 是:繼續執行equals(),看其傳回值
20 是true:說明元素重複,不添加
21 是false:就直接添加到集合
22 否:就直接添加到集合
23 最終:
24 自動生成hashCode()和equals()即可
25
26 LinkedHashSet
27 底層資料結構由連結清單和哈希表組成。
28 由連結清單保證元素有序。
29 由哈希表保證元素唯一。
30 TreeSet
31 底層資料結構是紅黑樹。(是一種自平衡的二叉樹)
32 如何保證元素唯一性呢?
33 根據比較的傳回值是否是0來決定
34 如何保證元素的排序呢?
35 兩種方式
36 自然排序(元素具備比較性)
37 讓元素所屬的類實作Comparable接口
38 比較器排序(集合具備比較性)
39 讓集合接收一個Comparator的實作類對象
40 Map(雙列集合)
41 A:Map集合的資料結構僅僅針對鍵有效,與值無關。
42 B:存儲的是鍵值對形式的元素,鍵唯一,值可重複。
43
44 HashMap
45 底層資料結構是哈希表。線程不安全,效率高
46 哈希表依賴兩個方法:hashCode()和equals()
47 執行順序:
48 首先判斷hashCode()值是否相同
49 是:繼續執行equals(),看其傳回值
50 是true:說明元素重複,不添加
51 是false:就直接添加到集合
52 否:就直接添加到集合
53 最終:
54 自動生成hashCode()和equals()即可
55 LinkedHashMap
56 底層資料結構由連結清單和哈希表組成。
57 由連結清單保證元素有序。
58 由哈希表保證元素唯一。
59 Hashtable
60 底層資料結構是哈希表。線程安全,效率低
61 哈希表依賴兩個方法:hashCode()和equals()
62 執行順序:
63 首先判斷hashCode()值是否相同
64 是:繼續執行equals(),看其傳回值
65 是true:說明元素重複,不添加
66 是false:就直接添加到集合
67 否:就直接添加到集合
68 最終:
69 自動生成hashCode()和equals()即可
70 TreeMap
71 底層資料結構是紅黑樹。(是一種自平衡的二叉樹)
72 如何保證元素唯一性呢?
73 根據比較的傳回值是否是0來決定
74 如何保證元素的排序呢?
75 兩種方式
76 自然排序(元素具備比較性)
77 讓元素所屬的類實作Comparable接口
78 比較器排序(集合具備比較性)
79 讓集合接收一個Comparator的實作類對象
80
81 2.關于集合選取原則
82
83 是否是鍵值對象形式:
84 是:Map
85 鍵是否需要排序:
86 是:TreeMap
87 否:HashMap
88 不知道,就使用HashMap。
89
90 否:Collection
91 元素是否唯一:
92 是:Set
93 元素是否需要排序:
94 是:TreeSet
95 否:HashSet
96 不知道,就使用HashSet
97
98 否:List
99 要安全嗎:
100 是:Vector
101 否:ArrayList或者LinkedList
102 增删多:LinkedList
103 查詢多:ArrayList
104 不知道,就使用ArrayList
105 不知道,就使用ArrayList
106
107 3:集合的常見方法及周遊方式
108 Collection:
109 add()
110 remove()
111 contains()
112 iterator()
113 size()
114
115 周遊:
116 增強for
117 疊代器
118
119 |--List
120 get()
121
122 周遊:
123 普通for
124 |--Set
125
126 Map:
127 put()
128 remove()
129 containskey(),containsValue()
130 keySet()
131 get()
132 value()
133 entrySet()
134 size()
135
136 周遊:
137 根據鍵找值
138 根據鍵值對對象分别找鍵和值
139