目錄0. 前言1. Collection介面1.1. List介面1.1.1. ArrayList1.1.2. LinkedList1.1.3. Vector1.1.4. Stack1.2. Set介面1.2.1. HashSet1.2.2. LinkedHashSet1.2.3. TreeSet1 ...
目錄
0. 前言
容器,顧名思義,就是java中存儲數據的常用結構,在C++中我們接觸過數組、鏈表等等,在java中,容器則進一步規範化,形成瞭如下的容器介面繼承關係圖:
java容器主要包括collection
介面(集合)和map
介面(圖)
1. Collection介面
1.1. List介面
1.1.1. ArrayList
數組實現,查詢快,增刪慢,線程不安全,效率高;
1.1.2. LinkedList
鏈表實現,查詢慢,增刪快,線程不安全,效率高;
1.1.3. Vector
數組實現,查詢快,增刪慢,同步訪問
1.1.4. Stack
vector子類,先進後出,vector不常用,stack卻很常用。
1.2. Set介面
1.2.1. HashSet
基於HashMap實現,線程不安全,效率高;
存儲元素無序,不可重覆;
1.2.2. LinkedHashSet
基於LinkedHashMap實現,線程不安全,效率高;
存儲元素有序,不可重覆;
1.2.3. TreeSet
基於TreeMap實現,線程不安全,效率高;
存儲元素有序,不可重覆;
1.3. Queue介面
1.3.1. PriorityQueue
通過二叉小頂堆實現,可以用一棵完全二叉樹表示。
1.3.2. LinkedList
鏈表實現,查詢慢,增刪快,線程不安全,效率高;
2. Map介面
2.1. HashMap
數組+鏈表+紅黑樹實現,線程不安全,效率高;
重點是擴容和紅黑樹轉換
2.2. TreeMap
和HashMap無序排序不同,SortedMap介面在內部會對Key進行排序,註意到SortedMap是介面,它的實現類是TreeMap。
2.3. LinkedHashMap
底層數據結構類似hashmap,但是內部還有一個雙向鏈表維護鍵值對的順序,每個鍵值對既位於哈希表中,也位於雙向鏈表中。LinkedHashMap支持兩種順序插入順序、訪問順序。
3.常見用法——增/刪/改/查/排序/容量
以上是簡單的容器特性介紹,下麵是一些常用的容器類的使用方法,廢話不多說,上圖:
後記
如果覺得我寫得還算不錯,不妨點贊關註一波走起~
想看更多博文,請訪問我的各平臺主頁:博客園 / CSDN / 51CTO / 掘金論壇 / 知乎