Collection 定義再 java.util 裡面的物件叫 element (元素)
- Collection : 一個沒有順序但可以重複的物件集
|e-- Set : 一個沒有順序且不可以重複的物件集合
|i-- HashSet :HashSet是Java提供的雜湊類別,它的特性是不會因元素增加而使得存取時間增長,
HashSet也可以透過iterator取得Iterator指位器來存取雜湊表中的元素。
HashSet的排序規則是利用Hash Table,所以加入HashSet容器的物件還必須重新定義hashCode()方法,
利用Hash的方式,可以讓您快速的找到容器中的物件。
事實上,在撰寫新的類別時,最好總是重新定義equals()與hashCode()方法
|e-- List : 一個有順序且可以重複的物件集合
|i-- Vector : 動態陣列,當超出範圍時,Vector是擴充原有的一倍。Vector is synchronized,
即Vetor對象自身實現了同步機制,因此運行效率低。(heavy-weight 較耗記憶體,不建議使用)
|e-- Stack : 採FILO原則(first in last out)先進後出,繼承Vector,
但應使用LinkedList來代替 (heavy-weight 較耗記憶體,不建議使用)
|i-- ArrayList : 適合查詢按照索引存取元素時使用,若存取元素會經常變動索引效率差
|i-- LinkedList : 以鏈結的方式存取元素,適合經常存取元素時會變動索引,用在新增與刪除物件的機制效率較佳
|e-- Queue : 一個以佇列方式將物件加入至後端並可以從前端取出的物件集合 採FIFO原則(first in first out)先進先出
建議使用offer()取代add(),poll()取代remove(),peek()取代element(),
原有的方法執失敗會丟出exeception
|e-- Deque : 一個以佇列方式可將物件加入或移除前後端的物件集合
- Map : 沒有順序也不排序,keys不可以重複且每個key最多對應到一個value
|i-- HashTable : 沒有順序也不排序,key與value不可以是null
|e-- Properties :
|i-- HashMap : 沒有順序也不排序,key與value可以是null
|e-- LinkedHashMap : 有順序,key與value可以是null
|i-- SortedMap : 使用key's自然排序,key不可以重複及null
|i-- TreeMap : 使用key's自然排序,且key必須是相同型別
| 集合介面 |
排序性
|
順序性
|
不予許重複
|
使用鍵值
|
| SortedSet |
V
|
|
V
|
|
| SortedMap |
V
|
|
|
V
|
| HashMap |
V
|
|||
| Hashtable |
V
|
|||
| TreeMap |
V
|
V
|
||
| LinkedHashMap |
V
|
V
|
||
| HashSet |
V
|
|||
| TreeSet |
V
|
|
V
|
|
| LinkedHashSet |
V
|
V
|
||
| ArrayList |
V
|
|||
| Vector |
V
|
|||
| LinkedList |
V
|
