Java集合框架簡介

集合框架(用於存儲數據的容器)數組

對於集合容器,有不少種。由於每個容器的自身特色不一樣,其實原理在於每一個容器的內部數據結構不一樣。下面來介紹這些集合容器的特色及其數據結構。安全

集合框架主要分爲兩大接口:Collection和Map。數據結構

在Collection接口下有List接口和Set接口框架

Collection集合:線程

List:有序(元素存入集合的順序和取出的順序一致),元素都有索引。元素能夠重複。 對象

     |--ArrayList:底層的數據結構是數組,線程不一樣步,不安全。查詢速度快,增刪慢。排序

    |--LinkedList:底層的數據結構是雙向循環鏈表,線程不一樣步,不安全,查詢速度慢,增刪(add()和remove()方法)元素的速度快。索引

    |--Vector:底層的數據結構就是數組,線程同步的,安全的,但效率低,查詢快,增刪很慢。接口

Set:無序(元素存入集合的順序和取出的順序不一致),元素不能夠重複。rem

    |--HashSet:底層數據結構是哈希表,線程是不一樣步的。無序,存取速度快;  

HashSet 集合保證元素惟一性:經過元素的hashCode 方法,和 equals方法完成的。當元素的 hashCode 值相同時,才繼續判斷元素的equals 是否爲true。若是爲 true,那麼視爲相同元素,不存。若是爲 false,那麼存儲。若是 hashCode 值不一樣,存儲,那麼不判斷 equals,從而提升對象比較的速度。      

    |--LinkedHashSet:hashset 的子類,採用hash表存儲,並用雙向鏈表記錄插入順序。 

    |--TreeSet:對 Set 集合中的元素的進行指定順序的排序。線程不一樣步。TreeSet 底層的數據結構就是二叉樹。

Map 集合:鍵不可重複,值能夠重複

    |--Hashtable:底層是哈希表數據結構,是線程同步的。不能夠存儲 null 鍵,null 值。

    |--HashMap:底層是哈希表數據結構,是線程不一樣步的。能夠存儲 null 鍵,null 值。能夠用來替代 Hashtable.

    |--TreeMap:底層是二叉樹結構,能夠對 map 集合中的鍵進行指定順序的排序。

幾個經常使用類的區別 
1.ArrayList: 元素單個,效率高,多用於查詢 
2.Vector: 元素單個,線程安全,多用於查詢 
3.LinkedList:元素單個,多用於插入和刪除 
4.HashMap: 元素成對,元素可爲空 
5.HashTable: 元素成對,線程安全,元素不可爲空 

Map 集合存儲和 Collection 有着很大不一樣: Collection 一次存一個元素;Map 一次存一對元素。 Collection 是單列集合;Map 是雙列集合。 Map 中的存儲的一對元素:一個是鍵,一個是值,鍵與值之間有對應(映射)關係。 

以上內容本身整理的,若是內容有錯誤,還望各位指正

相關文章
相關標籤/搜索