List,Set,Map的區別
阿新 • • 發佈:2019-02-15
首先List與Set都是單列元素的集合,它們有一個共同的父介面Collection。
List
特點: 元素有放入順序,元素可重複
- 存元素:多次呼叫add(Object)方法時,每次加入的物件按先來後到的順序排序,也可以插隊,即呼叫add(int index,Object)方法,就可以指定當前物件在集合中的存放位置。
- 取元素:
方法1:Iterator介面取得所有,逐一遍歷各個元素。
方法2:呼叫get(index i)來明確說明取第幾個。
for迴圈,foreach迴圈,Iterator迭代器迭代。
Set
- 特點:元素無放入順序,元素不可重複。
- 存元素:add方法有一個boolean的返回值,當集合中沒有某個元素,此時add方法可成功加入該元素時,則返回true;
當集合含有與某個元素equals相等的元素時,此時add方法無法加入該元素,返回結果為false。- 取元素:可以foreach迴圈,iterator迭代器 迭代
接下來就說Map了。
Map
- 特點:元素按鍵值對儲存,無放入順序(鍵不能重複,值可以重複,非執行緒安全,高效,支援null;HashTable執行緒安全,低效,不支援null )
- 每次儲存時,要儲存一對keyalue,不能儲存重複的key,這個重複的規則也是按equals比較相等
- 存元素:存放用put方法:put(obj key,obj value),每次儲存時,要儲存一對keyalue,get(Object key)方法根據key獲得相應的value。
- 取元素:Map取出元素需轉換為Set,然後進行Iterator迭代器迭代,或轉換為Entry物件進行Iterator迭代器迭代