ArrayList => 插入、刪除速度慢,走訪速度快
LinkedList => 插入、刪除速度快,走訪速度慢,採雙向鏈結
Set => 元素不可重複,搜尋快
HashSet => 無順序性,查找速度快
LinkedHashSet => 有順序性
TreeSet => 有排序性(依字母),由紅黑樹所建
Map => 有元素鍵值,搜尋快
LinkedHashMap => 查找速度慢,插入、刪除速度快
TreeMap => 有排序性,由紅黑樹所建
原始集合 => 不同的是皆被宣告為具有Synchronized特性
Vector => ArrayList的前身,當超出範圍時,vector是擴充元有的一倍,ArrayList則是擴充一半
Stack => 採FILO原則,繼承Vector,但應使用LinkedList來代替
Hashtable => 不予許為null,所以比HashMap稍慢
HashMap => 查找速度快,鍵、值予許為null
| 集合介面 |
排序性
|
順序性
|
不予許重複
|
使用鍵值
|
| SortedSet |
‧
|
‧
| ||
| SortedMap |
‧
|
‧
| ||
| HashMap |
‧
| |||
| Hashtable |
‧
| |||
| TreeMap |
‧
|
‧
| ||
| LinkedHashMap |
‧
|
‧
| ||
| HashSet |
‧
| |||
| TreeSet |
‧
|
‧
| ||
| LinkedHashSet |
‧
|
‧
| ||
| ArrayList |
‧
| |||
| Vector |
‧
| |||
| LinkedList |
‧
|
java.util.Collection
<- java.util.List
<- java.util.ArrayList
<- java.util.LinkedList
<- java.util.Vector
<- java.util.Stack
<-java.util.Set
<- java.util.HashSet
<- java.util.SortedSet
<- java.util.TreeSet
java.util.Map
<- java.util.SortedMap
<- java.util.TreeMap
<- java.util.Hashtable
<- java.util.HashMap
<- java.util.LinkedHashMap
<- java.util.WeakHashMap