更新時間:2020-02-20 12:36:38 來源:動力節點 瀏覽3290次
快速了解Java集合框架菜鳥教程,JDK1.2引入了Java集合框架,包含一組數據結構。與數組不同,這些數據結構的存儲空間會隨著元素添加動態增加。其中,一些支持添加重復元素另一些不支持,一些支持null,一些能自動升序打印元素。
所有這些數據結構在java.util包里,包含了Collection、List、Set、Map、SortedMap接口。這些接口的實現類有LinkedList、TreeSet、ArrayList、HashMap等。除了這些數據結構,java.util包還提供了Date、GregorianCalender、StringTokenizer、Random這樣的工具類。
2.分類
可以按照接口、實現、算法三個方面對集合框架中的數據結構進行分類:
接口:Collection、List、Map組成了集合框架中所有具體實現類的接口,它們定義了子類必須實現的方法,非常好記。比如向集合添加元素,會用到Collection中定義的add()方法
實現:所有實現了上述3個接口的類,都被稱作集合框架,實際上就是數據結構。比如LinkedList、TreeSet等
算法:集合框架提供了很多可以直接調用的算法,比如求最大最小值、排序、填充等
3.優缺點
有以下4個優點
減少工作量的同時增加了軟件的可用性:不需要每個程序員動手實現排序、查找、找出元素在數據結構中出現的次數
執行速度更快更持久:集合框架的底層數據結構分為兩類,基于節點的和基于數組的,前者在頻繁添加時效率更高,后者在頻繁讀取時速度更快。一些數據結構是synchronized線程安全的,但會影響速度有,另一些則不是線程安全的。程序員在選用數據結構前要清楚地了解這些因素
互操作與轉換:由于實現了Collection接口,數據結構之間是可以相互轉換的。可以clone,可以把現有的結構轉成synchronized版本,還可以在把基于鏈表的數據結構轉為基于數組的結構
有以下2個缺點
當心類型轉換:在集合框架類之間進行轉換時要大大地小心,尤其要考慮泛型類型的兼容性
運行時類型檢查:集合框架在運行時會拋出異常,需要編程時多加注意
4.繼承體系
java.util中的數據結構繼承體系分為兩大類,一類實現了Collection接口,一類實現了Map接口。
Collection繼承體系(圖片來自Wikipedia)
Map繼承體系(圖片來自Wikipedia)
集合框架核心接口及實現類:
Collection:根接口,大部分數據結構都實現了Collection接口中的方法
Set:實現Set接口的數據結構不允許重復的元素,例如HashSet、LinkedHashSet
SortedSet:實現SortedSet接口的數據結構默認可按升序打印元素,例如TreeSet
List:實現List接口的數據結構允許重復元素,可通過index訪問元素,例如LinkedList、ArrayList、Vector
Map:實現Map接口的數據結構存儲鍵值對,不允許重復的key,例如HashMap、LinkedHashMap、Hashtable
SortedMap:繼承了Map接口,存儲鍵值對,不允許重復的key,默認可按key升序打印元素,例如TreeMap
SortedSet與SortedMap默認的排序是自然序,可通過Comparator或Comparable接口實現自定義排序。
在接口與具體的實現類之間還有一些抽象類,如下圖:
這些抽象類為集合增加了很多功能:
HashSet:實現Set接口,不允許重復的元素,底層數據結構hashtable
LinkedHashSet:實現Set接口,不允許重復的元素,底層數據結構hashtable與雙鏈表
TreeSet:實現NavigableSet接口,不允許重復的元素,底層數據結構紅黑樹
ArrayList:實現List接口,允許重復元素,底層數據結構可變數組
LinkedList:實現List接口,允許重復元素,底層數據結構雙鏈表
Vector:實現List接口,允許重復元素,底層數據結構可變數組
HashMap:實現Map接口,不允許重復的key,底層數據結構hashtable
LinkedHashMap:實現Map接口,不允許重復的key,底層數據結構hashtable與雙鏈表
HashTable:實現Map接口,不允許重復的key,底層數據結構hashtable
TreeMap:實現SortedMap接口,不允許重復的key,底層數據結構紅黑樹
以上就是動力節點Java培訓機構小編介紹的“快速了解Java集合框架菜鳥教程”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關文章
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習