【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )
文章目錄
- I 集合脈絡
- II List 接口簡介
- III Set 接口簡介
- IV Map 接口簡介
- V Collection 接口定義的方法
I 集合脈絡
集合主要脈絡 : Java 集合大的分類為兩類 Collection 和 Map , Collection 下有 List , Set , Queue 三個主要接口 ;
- ① List 接口下實現的集合有 : ArrayList , Vector , Stack , LinkedList ;
- ② Set 接口下實現的集合有 : HashSet , LinkedHashSet , TreeSet ;
- ③ Queue 接口下實現的集合有 : PriorityQueue , LinkedList , 該集合即實現了了 List 接口 , 又實現了 Queue 接口 ;
- ④ Map 接口下實現的集合有 : TreeMap , HashMap , LinkedHashMap , HashTable ;
II List 接口簡介
List 接口 : List 集合特點 , ① 元素排列有序 , ② 元素可重復 ;
- ① ArrayList : 底層由數組實現 , 查詢速度快 , 增刪速度較慢 , 線程不安全 , 效率比較高 ;
- ② Vector : 底層由數組實現 , 查詢速度快 , 增刪速度較慢 , 線程安全 , 效率比較低 ;
- ③ LinkedList : 底層由鏈表實現 , 查詢速度較慢 , 增刪速度很快 , 線程不安全 ;
Vector 與 ArrayList 的區別是線程是否安全 , Vector 以降低效率的代價換取線程安全 ;
ArrayList 與 LinkedList 底層實現不同 , 一個是數組實現的 , 一個是鏈表實現的 , 如果應用環境中查詢比較多 , 使用 ArrayList , 如果應用環境中增刪比較多使用 LinkedList ;
III Set 接口簡介
1. Set 接口 : Set 集合特點是元素不可重復 ;
- 1. HashSet : 依賴于 HashMap 實現 ;
- ① 底層實現 : 底層由哈希表實現 ;
- ② 元素排序 : 其元素排序是無序的 ;
- ③ 元素重復驗證 : 每次插入元素都會使用 hashCode 和 equals 方法驗證是否與已有元素重復 ;
- 2. TreeSet : 依賴于 TreeMap 實現 ;
- ① 底層實現 : 底層由紅黑樹實現 ;
- ② 元素排序 : 其元素通過比較器排序確定元素順序 ;
- ③ 元素重復驗證 : 每次插入元素都會使用 equals 方法驗證是否與已有元素重復 ;
- 2. LinkedHashSet :
- ① 底層實現 : 底層由鏈表和哈希表實現 ;
- ② 元素排序 : 其元素排序是有序的 , 在插入時進行排序 ;
- ③ 元素重復驗證 : 每次插入元素都會使用 hashCode 方法驗證是否與已有元素重復 ;
如果要求集合中的元素唯一 , 那么使用 Set 集合 , 如果不需要排序就使用 hashSet , 如果需要排序使用 TreeSet 或 LinkedHashSet ;
2. 三種集合的使用場景 : HashSet 用于存儲不能重復的數據 , TreeSet 用于排序 , LinkedHashSet 有先進先出的功能 ;
3. 插入元素速度對比 : HashSet > LinkedHashSet > TreeSet ;
4. 關于元素的空值處理 : HashSet 和 LinkedHashSet 允許有空值 , TreeSet 如果出現空值就會拋出空指針異常 ;
IV Map 接口簡介
1. Map 接口的集合實現 : HashMap ( 子類 LinkedHashMap ) , TreeMap , HashTable ;
2. 排序分析 : HashMap 和 HashTable 是無序的 , TreeMap 是有序的 ;
3. 線程安全 : HashMap 是線程不安全的 ; HashTable 是線程安全的 , 其方法都是 synchronized 修飾的 ; 因此 HashMap 效率要比 HashTable 效率要高 ;
V Collection 接口定義的方法
Collection 接口定義了集合的基本操作 , 如下 :
- ① 添加刪除 : 添加 , 刪除 集合中的元素 ;
- ② 獲取 : 獲取 迭代器 , 集合大小 , 哈希碼 等 ;
- ③ 判定類 : 包含判定 , 相等判定 , 空判定等操作 ;
- ④ 數組轉換操作 ;
總結
以上是生活随笔為你收集整理的【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java 网络编程】TCP 数据传输示
- 下一篇: 【IntelliJ IDEA】创建 导入