Java集合框架提供了數據持有對象的方式,提供了對數據集合的操作,Java集合框架位於java.util包下,主要有三個大類:Collect、Map接口以及對集合操作的工具類。
+ ArrayList:
線程不同步,默認初始容量爲10,當數組大小不足時增長爲當前長度的50%
+ Vector:
線程同步,默認初始容量爲10,當數組大小不足時增長率爲當前長度的100%,它的同步是通過Iterator方法加synchronized實現的
+ LinkedList:
線程不同步,雙端隊列形式
+ Stack:
線程同步,繼承自Vector,添加了幾個方法來完成棧的功能。
+ Set:
是一種不包含重複元素的Collection,Set最多隻有一個null元素
+ HashSet:
線程不同步,內部使用HashMap進行數據存儲,提供的方法基本都是調用HashMap的方法,使用兩者本質是一樣的,集合元素可以爲null
+ NavigableSet:
添加了搜索功能,可以對給定元素進行搜索:小於、小於等於、大於、大於等於,放回一個符合條件的最接近給定元素的key
+ TreeSet:
線程不同步,內部使用NavigableMap操作,默認元素「自然順序」排列,可以通過Comparator改變排序。
+ EnumSet:線程不同步,內部使用Enum數組實現,速度比HashSet快,只能存儲在構造函數傳入的枚舉類的枚舉值。
- 類設計者沒有考慮到比較問題而沒有實現Comparable接口,這時我們就可以通過使用Comparator,這種情況下,我們是不需要改變對象的。
- 一個集合中,我們可能需要有多重的排序標準,這時候如果使用Comparable就有些捉襟見肘了,可以自己繼承Comparator提供多種標準的比較器進行排序。