1. 程式人生 > >java集合分類

java集合分類

工具類 mon 內存 mmap prope hashset 但是 java 滿了

Java集合分類:

  • List
  • Set
  • Map
  • Queue
  • 數組
  • 工具類
  • 擴展類

List:

  • ArrayList :動態數組。
  • LinkedList:雙向鏈表。
  • Vector:線程安全的動態數組。
  • Stack:對象棧,遵循先進後出的原則。

Set:

  • EnumSet:枚舉類型專用Set,所有元素都是枚舉類型。
  • HashSet:以哈希碼決定元素位置的set
  • TreeSet:插入時會自動排序的set,但是如果中途修改元素大小,則不會再修改後重新排序,只會在插入時排序。

Map:

  • TreeMap :自動排序map,根據key值自動排序。
  • HashMap:Entry數組,以key的哈希碼決定元素位置,所以,要保證key的哈希碼不一致,如果碰到值不同但哈希碼相同的key,會以單向鏈表擴展
  • HashTable:線程安全的
  • Properties:HashTable的子類,從Property文件中加載數據,並提供方便的讀寫操作。
  • EnumMap:Key必須是枚舉類型。

Queue:

  • 阻塞式隊列,滿了以後再插入元素會拋出異常;
    • ArrayBlockingQueue :以數組方式實現。
    • PriorityBlockingQueue:依照優先級組件的隊列。
    • LinkedBlockingQueue:通過鏈表實現。
  • 非阻塞隊列,無邊界,只要內存允許,可以持續追加。
    • PriorityQueue
  • 雙端隊列,支持在頭尾兩端插入和移除元素。而上面的阻塞隊列和非阻塞隊列都時單端隊列,只能在一端插入,另一端刪除。
    • ArrayDeque
    • LinkedBlockingDeque
    • LinkedList

工具類:

  • 數組工具類
    • java.util.Arrays
    • java.lang.reflect.Array
  • 集合工具類
    • java.util.Collections

擴展類:
可以自己寫一個List,或使用第三方實現例如:

  • Apache的Commons-collections擴展包
  • Google的google-collections擴展包

java集合分類