日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )

發布時間:2025/6/17 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • I 集合脈絡
        • II List 接口簡介
        • III Set 接口簡介
        • IV Map 接口簡介
        • V Collection 接口定義的方法



I 集合脈絡



集合主要脈絡 : Java 集合大的分類為兩類 CollectionMap , 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 接口定義了集合的基本操作 , 如下 :

  • ① 添加刪除 : 添加 , 刪除 集合中的元素 ;
  • ② 獲取 : 獲取 迭代器 , 集合大小 , 哈希碼 等 ;
  • ③ 判定類 : 包含判定 , 相等判定 , 空判定等操作 ;
  • 數組轉換操作 ;
//I. 添加操作//1. 添加單個元素 boolean add(E e) //2. 將集合中的元素都添加到本集合中 boolean addAll(Collection<? extends E> c) //II. 刪除操作//1. 刪除單個元素 boolean remove(Object o) //2. 刪除子集合 c 中的元素 boolean removeAll(Collection<?> c) //3. 保留本集合中含有的集合 c 中的元素 , 其它元素刪除 ( 保留兩集合的交集 ) boolean retainAll(Collection<?> c) //4. 清除所有元素 void clear() //III. 獲取操作//1. 獲取迭代器 Iterator<E> iterator() //2. 獲取哈希碼 int hashCode() //3. 獲取集合大小 int size() //IV. 數組轉換操作//1. 返回包含該集合所有元素的數組 Object[] toArray() //2. 返回包含該集合所有元素的數組, 并指定數組元素類型 <T> T[] toArray(T[] a) //V. 判定操作//1. 是否包含某元素 boolean contains(Object o) //2. 是否包含某集合中的所有元素 boolean containsAll(Collection<?> c) //3. 是否相等 boolean equals(Object o) //4. 集合是否為空 , 如果為空返回 true boolean isEmpty()

總結

以上是生活随笔為你收集整理的【Java 集合】Java 集合主要脉络 ( Collection | Map | List | Set )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。