1. 程式人生 > >簡述list,map,set, queue的區別

簡述list,map,set, queue的區別

   List是集合類的介面,子類有ArraryList 和LinkList,通常在Android開發中我們常用的是arrayList,來將資料進行插入和移除。

其次map也是一個集合對映,不過是鍵值對的對映,也就是key , value形式,比如當我們需要查詢其中的某個物件時,只需要查詢其key便能直接獲取到他的value(值),就像一個小型的資料庫,也有類似於hashmap , Linkedhashmap ,treemap等方法來進一步實現和拓展,並且提高他的效能。

Set是最簡單的一種集合。集合中的物件不按特定的方式排序,並且沒有重複物件。 Set介面主要實現了兩個實現類:(參考:http://blog.csdn.net/speedme/article/details/22398395)

  •  HashSet: HashSet類按照雜湊演算法來存取集合中的物件,存取速度比較快 
  • TreeSet :TreeSet類實現了SortedSet介面,能夠對集合中的物件進行排序。 
  • Set的功能方法 

    Set具有與Collection完全一樣的介面,因此沒有任何額外的功能,不像前面有兩個不同的List。實際上Set就是Collection,只 是行為不同。(這是繼承與多型思想的典型應用:表現不同的行為。)Set不儲存重複的元素(至於如何判斷元素相同則較為負責) 

    Set : 存入Set的每個元素都必須是唯一的,因為Set不儲存重複元素。加入Set的元素必須定義equals()方法以確保物件的唯一性。Set與Collection有完全一樣的介面。Set介面不保證維護元素的次序。 

    • HashSet:為快速查詢設計的Set。存入HashSet的物件必須定義hashCode()。 
    • TreeSet: 儲存次序的Set, 底層為樹結構。使用它可以從Set中提取有序的序列。 
    LinkedHashSet:具有HashSet的查詢速度,且內部使用連結串列維護元素的順序(插入的次序)。於是在使用迭代器遍歷Set時,結果會按元素插入的次序顯示。