本文原始碼:GitHub·點這里 || GitEE·點這里
一、集合容器簡介
集合容器是Java開發中最基礎API模塊,通常用來存盤運行時動態創建的元素,基本特點如下:
- 泛型特點,存盤任意型別物件;
- 動態擴容,存盤任意數量物件;
這里對存盤數量是受到程式和記憶體等環境制約的,從List的get()方法中可以看出,index的范圍是Integer.MAX_VALUE,
二、API體系
三大核心介面:List、Set繼承Collection, Map獨立介面
List與Set體系

List體系核心API:ArrayList,LinkedList、Vector
Set體系核心API:HashSet、TreeSet、LinkedHashSet
Queue佇列API:PriorityQueue、LinkedHashSet
Map體系

Map體系核心API:HashMap、LinkedHashMap、TreeMap、Hashtable
三、基礎容器詳解
1、核心內容

- 元素存盤,增刪改查判斷等基礎用法
- API方法中執行緒安全問題
- 容器初始化大小與動態擴容機制
- 底層資料結構特點
- 同一介面或者不同介面體系容器對比
基本熟練使用并理解集合容器,需要知道如上幾塊內容:API基礎用法,執行緒安全問題;容器大小與擴容;結構特點,陣列、鏈表、哈希表;
2、API體系詳解
Collection:集合容器的根介面,定義公共方法;
List體系:
- ArrayList
維護Object陣列實作,特點:查詢快,增刪慢,非執行緒安全,所以效率高,
- LinkedList
底層維護鏈表資料結構實作,特點:查詢慢,增刪快,非執行緒安全,所以效率高,
- Vector
底部維護Object陣列,實作和ArrayList一樣,但是Vector是執行緒安全,效率低,
Set體系:
- HashSet
底層是使用了哈希表來支持的,特點:存取速度快,元素唯一且無序,
- LinkedHashSet
底層資料結構是鏈表和哈希表,鏈表保證元素有序性,哈希表保證元素唯一性,非執行緒安全,
- TreeSet
資料結構是紅黑樹,如果元素具備自然順序的特性,那么就按照元素自然順序的特性進行排序,或者基于比較器自定義排序,
Map體系:
Map介面的實作類,具備的特點:存盤的資料都是以鍵值對的方式,鍵不可以重復,值可重復,
- HashMap
底層使用hashCode表來實作向HashMap中添加元素,允許使用null值和null鍵,不保證元素的順序固定,
- TreeMap
TreeMap:基于二叉樹的資料結構實作的,會對具備自然特性的鍵進行排序存盤:元素的鍵具備自然特性,直接排序存盤;不具備自然特性,實作Comparable介面,在ComparaTo中定義排序規則,
- HashTable
執行緒安全,相對效率低,不允許使用null值,
3、容器遍歷
- 基于for、foreach、while流程控制
- Iterable迭代器核心介面
- Lambda運算式:遍歷、分組、查詢
四、源代碼地址
GitHub·地址
https://github.com/cicadasmile
GitEE·地址
https://gitee.com/cicadasmile
推薦閱讀:架構設計系列
| 標題 |
|---|
| 架構設計:單服務.集群.分布式,基本區別和聯系 |
| 架構設計:分布式業務系統中,全域ID生成策略 |
| 架構設計:分布式系統調度,Zookeeper集群化管理 |
| 架構設計:介面冪等性原則,防重復提交Token管理 |
| 架構設計:快取管理模式,監控和記憶體回收策略 |
| 架構設計:異步處理流程,多種實作模式詳解 |
| 架構設計:高并發流量削峰,共享資源加鎖機制 |
| 架構設計:分布式服務,庫表拆分模式詳解 |
| 架構設計:分布式事務①概念簡介和基礎理論 |
| 架構設計:基于電商交易流程,圖解TCC事務分段提交 |
| 架構設計:基于訊息中間件,圖解柔性事務一致性 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25913.html
標籤:Java
上一篇:搭建JavaWeb開發環境
