您好,登錄后才能下訂單哦!
Collection是集合繼承結構中的頂層接口(interface),其是Iterable的子類。
Collections 是提供了對集合進行操作的強大方法的工具類 ,它包含有各種有關集合操作的靜態多態方法。此類不能實例化(其構造函數是private的,該類中的方法都是static的可以直接調用)
ArrayList:線程不同步。默認初始容量為10,當數組大小不足時增長率為當前長度的50%。
Vector:線程同步。默認初始容量為10,當數組大小不足時增長率為當前長度的100%。它的同步是通過Iterator方法加synchronized實現的。
LinkedList:線程不同步。雙端隊列形式。
Stack:線程同步。繼承自Vector,添加了幾個方法來完成棧的功能。
Set:Set是一種不包含重復元素的Collection,Set最多只有一個null元素。
HashSet:線程不同步,內部使用HashMap進行數據存儲,提供的方法基本都是調用HashMap的方法,所以兩者本質是一樣的。集合元素可以為NULL。
NavigableSet:添加了搜索功能,可以對給定元素進行搜索:小于、小于等于、大于、大于等于,放回一個符合條件的最接近給定元素的 key。
TreeSet:線程不同步,內部使用NavigableMap操作。默認元素“自然順序”排列,可以通過Comparator改變排序。
EnumSet:線程不同步。內部使用Enum數組實現,速度比HashSet快。只能存儲在構造函數傳入的枚舉類的枚舉值。
HashMap:線程不同步。根據key的hashcode進行存儲,內部使用靜態內部類Node的數組進行存儲,默認初始大小為16,每次擴大一倍。當發生Hash沖突時,采用拉鏈法(鏈表)。可以接受為null的鍵值(key)和值(value)。JDK 1.8中:當單個桶中元素個數大于等于8時,鏈表實現改為紅黑樹實現;當元素個數小于6時,變回鏈表實現。由此來防止hashCode攻擊。
LinkedHashMap:保存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的. 也可以在構造時用帶參數,按照應用次數排序。在遍歷的時候會比HashMap慢,不過有種情況例外,當HashMap容量很大,實際數據較少時,遍歷起來可能會比LinkedHashMap慢,因為LinkedHashMap的遍歷速度只和實際數據有關,和容量無關,而HashMap的遍歷速度和他的容量有關。
TreeMap:線程不同步,基于 紅黑樹 (Red-Black tree)的NavigableMap 實現,能夠把它保存的記錄根據鍵排序,默認是按鍵值的升序排序,也可以指定排序的比較器,當用Iterator 遍歷TreeMap時,得到的記錄是排過序的。
HashTable:線程安全,HashMap的迭代器(Iterator)是fail-fast迭代器。HashTable不能存儲NULL的key和value。
Collections、Arrays:集合類的一個工具類/幫助類,其中提供了一系列靜態方法,用于對集合中元素進行排序、搜索以及線程安全等各種操作。
Comparable,Comparator:一般是用于對象的比較來實現排序,兩者略有區別。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。