2012年10月22日 星期一

Java筆記-List, Set, Map 集合物件

List => 有順序性 
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