Java 基礎 —— 集合框架

Java 基礎 —— 集合框架

java.util.Iterable
JDK版本:1.8_0_191

定義

  • 百度百科
    包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字符串標記生成器、隨機數生成器和位數組、日期Date類、堆棧Stack類、向量Vector類等)。集合類、時間處理模式、日期時間工具等各類常用工具包

Java 集合框架圖(簡)

在這裏插入圖片描述
注意:Collection屬於單列值,Map屬於鍵值對,Map並不是集合,但是它們完全整合在集合中。

Java集合框架組成部分

  • Collection (單列值)
    存儲一個元素集合。Collection接口有三個子接口:Set、List、Queue
  • Map (鍵值對)
    存儲鍵/值對映射。
  • Collections / Arrays
    封裝對集合類的處理算法,例如排序、遍歷、格式化等。
    在這裏插入圖片描述

常用集合

  • ArrayList
  • LinkedList
  • HashSet
  • LinkedHashSet
  • HashMap
  • LinkedHashMap

集合接口

一共有八個集合接口:

  • 1.Collection
    基本集合接口。Collection 接口存儲一組不唯一,無序的對象。
  • 2.List
    • Collection的實現類
    • 有序的
    • 可控制元素插入位置
    • 可通過索引訪問元素
    • 首個元素索引爲0
    • 允許有相同元素

存儲不唯一,且有序(插入順序)的對象。

  • 3.Set
    • 具有與Collection完全一樣的接口
    • 不保存重複元素

存儲唯一,無序的對象。

  • 4.SortedSet
    • 繼承Set
    • 有序集合
  • 5.Map
    • 存儲鍵值對
    • 提供Key / Value 映射
  • 6.Map.Entry
    • 描述Map中的一個元素
    • Map的內部類
  • 7.SortedMap
    • 繼承Map
    • 使key保持在升序排序(排序規則是:
    • 封裝函數entrySet(),可以獲得Set<Map.Entry<K, V>>,便可使用Map.Entry中的getKey()、getValue()、comparingByKey、comparingByValue等函數
  • 8.Enumeration
    • 可枚舉(一次一個)集合中的元素
    • 此接口已被迭代器替代

集合接口UML

集合接口UML

Set和List區別

  • 1.Set存儲無序且不重複,List有序且可重複。
  • 2.Set查詢效率低,刪除和插入效率高(插入和刪除不會引起元素位置改變<實現類有HashSet、TreeSet>)
  • 3.List可動態變長,根據實際存儲元素自動增長長度。查詢效率高,刪除和插入效率低(因爲,會引起其它元素位置改變<實現類有ArrayList、LinkedList、Vecotr>)

集合實現類(集合類)

公15個集合實現類,都是實現Collection接口的標準集合類。

  • 1.AbstractCollection
    • 實現大部分集合(Collection)接口
  • 2.AbstractList
    • 繼承AbstractCollection
    • 實現大部分List接口函數
  • 3.AbstractSequentialList
    • 繼承AbstractList
    • 提供鏈式訪問而不是隨機訪問元素
  • 4.LinkedList
    • List接口實現類
    • 允許空(null)元素
    • 用於創建鏈表數據結構
    • 沒有同步方法,多線程同時訪問一個List,則必須自己實現訪問同步,就是在創建List時構造一個同步List
  • 5.ArrayList
    • List接口實現類
    • 實現調整數組大小函數,隨機訪問或遍歷元素時,提高性能
    • 非同步,多線程情況下不允許使用
    • ArrayList會增常數組本身長度50%,插入刪除效率低
  • 6.AbstractSet
    • 繼承AbstractCollection
    • 實現大部分Set接口函數
  • 7.HashSet
    • 實現Set接口
    • 不允許重複
    • 無序
    • 允許包含空(null)值,但,最多隻能存在一個
  • 8.LinkedHashSet
    • 可預知迭代順序的Set接口的哈希表和鏈接列表實現
  • 9.TreeSet
    • 實現Set接口
    • 可實現排序等功能
  • 10.AbstractMap
    • 實現大部分Map接口
  • 11.HashMap
    • 是一個散列表
    • 存儲內容爲K/V映射
    • 實現Map接口
    • 根據鍵的HashCode值存儲數據,具有很快訪問速度
    • 最多允許一條記錄的值爲null
    • 不支持線程同步
  • 12.TreeMap
    • 繼承AbstractMap
    • 使用一棵樹
  • 13.WeakHashMap
    • 繼承AbstractMap
    • 使用弱密鑰的哈希表
  • 14.LinkedHashMap
    • 繼承HashMap
    • 使用元素自然自然順序對元素排序
  • 15.IdentityHashMap
    • 繼承AbstractMap
    • 比較文檔時使用引用相等

集合實現類接口UML

在這裏插入圖片描述

完整集合框架結構圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章