數組:一種容器,可以裝很多元素,元素跟下標綁定,下標范圍(0到len-1)
通過下標訪問元素。長度固定。
collection:一種容器,可以裝很多元素,長度不固定(可以動態增加或減少)。
collection容器都有管理者-》Iterator--》怎么獲取容器.Iterator()
通過管理者可以遍歷容器元素。
list:一種容器,可以裝很多元素,長度不固定(可以動態增加或減少)。
元素跟下標綁定,下標范圍(0到len-1),通過下標訪問元素。
元素可以重復。
list實現類
a)arrayList:底層是數組,線程不安全,對比linkedList讀取設置元素效率高,插入刪除效率底。
b)linkedList:底層是雙向鏈表,對比arrayList讀取設置元素效率低,插入刪除效率高。
c)vector:底層是數組,線程安全
set:一種容器,可以裝很多元素,長度不固定(可以動態增加或減少)。
元素不能重復,沒有綁定下標。
set實現類
a)hashset:底層是hashMap,通常使用hashset效率比treeset高。
b)treeset:底層是treeMap,如果需要自動對添加元素做排序-使用。
map:一種容器,可以裝很多鍵(類似于下標)值(類似于元素)對,通過鍵訪問值。
鍵不能重復,值可以重復,長度不固定(可以動態增加或減少)。
map實現類
hashmap:底層是數組加單向鏈表,線程不安全,存儲的鍵和值可以為null
hashtable:底層是數組加單向鏈表,線程安全,存儲的鍵和值不可以為null
treemap:底層是紅黑樹,如果需要自動對添加鍵值對按照鍵做排序-使用。
Properties:繼承了hashtable,新增了api,與Properties文件做交互
(讀取文件數據,寫數據文件)使用。
怎么選擇?
1)需要的容器存儲單個元素,長度固定,用于訪問容器的數據--》數組
2)需要的容器存儲單個元素,長度不固定,要求可以存儲重復元素--》list
3)需要的容器存儲單個元素,長度不固定,要求不可以存儲重復元素--》set
3)需要的容器存儲一對數據(鍵-值),長度不固定--》map
浙公網安備 33010602011771號