天天看點

Java集合架構的簡單介紹

在程式設計時有些場景需要用到Java的集合架構,這篇博文将介紹在Java系統裡的集合架構。

Java集合架構的簡單介紹

Java提供了大量持有對象的方式:

  • 數組
  • Collection

    儲存單一的元素,

    Map

    儲存相關聯的鍵值對。各種Collection和各種

    Map

    都可以在你向其中添加更多元素時自動調整其尺寸。
  • 向數組一樣,List也建立數字索引與對象的關聯,是以數組和List都是拍好序的容器。List能自動擴充容量。
  • 如果要進行大量的随機通路,就使用

    ArrayList

    ;如果要經常從表中間插入或删除元素,則使用

    LinkedList

    .
  • 各種

    Queue

    及棧的行為,優LinkedList提供
  • Map

    是一種将對象與對象相關聯的設計,HashMap 設計用來快速通路;LinkedHashMap保持元素插入時的順序,但是也通過散列提供快速通路能力。
  • Set

    不接受重複元素。HashSet提供最快的查詢速度,LinkedHashSet以插入順序儲存元素

Collection

List

List有兩種基本類型:ArrayList和LinkedList

ArrayList

ArrayList長于随機通路元素,但是在List的中間插入和移除元素時比較慢。下面來列舉幾個ArrayList的常用API

  • contains()用于确定某個對象是否在清單中。
  • remove()方法移除一個對象,将這個對象的引用傳遞給remove()方法
  • indexOf()方法用來擷取某個對象在List中的所處位置的索引編号
  • subList()方法将從較大的清單中建立出一個片段。
  • retailAll()方法時List的交集操作

LinkedList

LinkedList實作基本的List接口。下面介紹LinkedList中的一些方法

  • getFirst()方法傳回清單的頭,如果List為空,則抛出異常
  • removeFirst()移除并傳回清單的頭元素,在清單為空時抛出異常
  • addList()和addLast()相同,将某個元素插入到清單的頭部或尾部
  • removeLast()移除并傳回清單的最後一個元素

Queue

Queue是先進先出的容器,從容器的一端放入事物,從另一端取出,并且事物放入容器順序與取出的順序相同,隊列常常被當作一種可靠的将對象從程式的某個區域傳輸到另一個區域的途徑,下面介紹在Queue中的方法:

  • offer()方法将一個元素插入到隊尾,或者傳回false
  • peek()和element()都将在不移除的情況下傳回對頭,peek()方法在隊列為空時傳回null,element()則會抛出異常資訊。
  • poll()和remove()方法将移除并傳回對頭,當隊列為空時poll()傳回空,而remove()會抛出異常

Map

Map

是以一種鍵值對的方式存儲元素,

HashMap

是Map的子類。下面介紹有關Map的幾個常用方法:

  • get():通過鍵K擷取元素的值
  • put():傳入

    K-V

    鍵值對,方法将K-V鍵值對存入Map中

參考資料

《Java程式設計思想》