文章出處

list 和set 有共同的父類 它們的用法也是一樣的 唯一的不太就是set中不能有相同的元素 list中可以
list和set的用途非常廣泛 list可以完全代替數組來使用
map 是獨立的合集 它使用鍵值對的方式來儲存數據 鍵不能有重復的 值可以用
map不像上邊兩種集合那個用的廣泛 不過在servlet 和jsp中 map可是絕對的重中之重 頁面之間傳值全靠map

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

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

Set是最簡單的一種集合。集合中的對象不按特定的方式排序,并且沒有重復對象。 Set接口主要實現了兩個實現類:

  •  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時,結果會按元素插入的次序顯示。

 

 Queue用于模擬"隊列"這種數據結構(先進先出 FIFO)。隊列的頭部保存著隊列中存放時間最長的元素,隊列的尾部保存著隊列中存放時間最短的元素。新元素插入(offer)到隊列的尾部,
   訪問元素(poll)操作會返回隊列頭部的元素,隊列不允許隨機訪問隊列中的元素。結合生活中常見的排隊就會很好理解這個概念 3.1) PriorityQueue PriorityQueue并不是一個比較標準的隊列實現,PriorityQueue保存隊列元素的順序并不是按照加入隊列的順序,而是按照隊列元素的大小進行重新排序,這點從它的類名也可以
     看出來 3.2) Deque Deque接口代表一個"雙端隊列",雙端隊列可以同時從兩端來添加、刪除元素,因此Deque的實現類既可以當成隊列使用、也可以當成棧使用 3.2.1) ArrayDeque 是一個基于數組的雙端隊列,和ArrayList類似,它們的底層都采用一個動態的、可重分配的Object[]數組來存儲集合元素,當集合元素超出該數組的容量時,系統會在底層重
       新分配一個Object[]數組來存儲集合元素 3.2.2) LinkedList

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()