1. 程式人生 > >List,Set,Map的區別

List,Set,Map的區別

首先List與Set都是單列元素的集合,它們有一個共同的父介面Collection。

List

  1. 特點: 元素有放入順序,元素可重複

  2. 存元素:多次呼叫add(Object)方法時,每次加入的物件按先來後到的順序排序,也可以插隊,即呼叫add(int index,Object)方法,就可以指定當前物件在集合中的存放位置。
  3. 取元素:

              方法1:Iterator介面取得所有,逐一遍歷各個元素。

              方法2:呼叫get(index i)來明確說明取第幾個。             

              for迴圈,foreach迴圈,Iterator迭代器迭代。

 Set

  1. 特點:元素無放入順序,元素不可重複。
  2. 存元素:add方法有一個boolean的返回值,當集合中沒有某個元素,此時add方法可成功加入該元素時,則返回true;
    當集合含有與某個元素equals相等的元素時,此時add方法無法加入該元素,返回結果為false。
  3. 取元素:可以foreach迴圈,iterator迭代器 迭代

 接下來就說Map了。

Map

  1. 特點:元素按鍵值對儲存,無放入順序(鍵不能重複,值可以重複,非執行緒安全,高效,支援null;HashTable執行緒安全,低效,不支援null )
  2. 每次儲存時,要儲存一對keyalue,不能儲存重複的key,這個重複的規則也是按equals比較相等
  3. 存元素:存放用put方法:put(obj key,obj value),每次儲存時,要儲存一對keyalue,get(Object key)方法根據key獲得相應的value。
  4. 取元素:Map取出元素需轉換為Set,然後進行Iterator迭代器迭代,或轉換為Entry物件進行Iterator迭代器迭代

 List是用來處理序列的,而Set是用來處理集的。儲存的是鍵值對。