1. 程式人生 > >三大集合介紹

三大集合介紹

繼承樹:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
設計集合目的:
List 實現可以自動擴充套件的有序陣列
set實現沒有重複的無序陣列
TreeSet,TreeList,TreeMap 實現自動排序的組數
Map實現鍵值對儲存
各種集合的特點:
1.ArrayList:
可變陣列、查詢速度快、尾部增刪改速度快、其他部位增刪改速度慢、非同步、執行緒不安全
2.LinkedList
雙向連結串列、查詢速度慢、兩端增刪改速度快、非同步、執行緒不安全
3.HashMap
鍵值對儲存、可以有一個鍵為null、多個值為null、hash陣列的預設大小是16,而且一定是2的指數、非同步、執行緒不安全
4.HashTable
鍵值對儲存、鍵值均不可為null、hash陣列預設大小是11、增加的方式是 old*2+1、同步、執行緒安全
5.HashSet
元素的排列順序有可能發生變化、集合元素可以是null,但只能放入一個null、非同步、執行緒不安全
6.TreeSet
儲存值、不能有重複物件、集合元素處於排序狀態,支援兩種排序方式,自然排序和定製排序,其中自然排序為預設的排序方式、通過equals方法實現、定製排序通過CompareTo方法實現、非同步、執行緒不安全
7.TreeMap
儲存鍵值對、可以有重複物件、其餘和TreeSet一致、非同步、執行緒不安全
8.WeekHashMap
HashMap的增強版、弱引用、可以用來訪問物件,但進行垃圾回收時弱引用並不會被考慮在內,僅有弱引用指向的物件仍然會被GC回收。
應用選擇:


追求速度就選擇非同步執行緒不安全的集合、追求執行緒安全就使用同步執行緒安全的集合。當然,非同步執行緒不安全的集合也可以通過增加同步鎖的方式保證執行緒安全。