集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet)
阿新 • • 發佈:2018-12-25
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集合中的鍵進行排序