1. 程式人生 > >集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet)

集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet)

ArrayList,LinkedList,Vector都屬於List

List:元素是有順序的,元素可以重複因為每個元素有自己的角標(索引)
  |-- ArrayList:底層的資料結構是陣列結構,特點是:查詢很快,增 刪 稍微慢點,執行緒不同步

  |-- LinkedList:底層使用的是連結串列資料結構,特點是:增 刪很快,查詢慢。

  |--Vector:底層是陣列資料結構,執行緒同步,被ArrayList代替了,現在用的只有他的列舉。


Set:元素是無序的,且不可以重複(存入和取出的順序不一定一致),執行緒不同步。

  |--HashSet:底層是雜湊表資料結構。根據hashCode和equals方法來確定元素的唯一性

  |--TreeSet:可以對Set集合中的元素進行排序(自然循序),底層的資料結構是二叉樹,
    也可以自己寫個類實現Comparable 或者 Comparator 介面,定義自己的比較器,將其作為引數傳遞給TreeSet的建構函式。

Map:這個集合是儲存鍵值對的,一對一對往裡存,而且要確保鍵的唯一性(01,張三)這樣的形式打印出來就是  01=張三
   |--HashTable:底層是雜湊表資料結構,不可以存入null鍵和null值,該集合執行緒是同步的,效率比較低。出現於JDK1.0

   |--HashMap:底層是雜湊表資料結構,可以存入null鍵和null值,執行緒不同步,效率較高,代替了HashTable,出現於JDK 1.2

   |--TreeMap:底層是二叉樹資料結構,執行緒不同步,可以用於個map集合中的鍵進行排序