文章目錄
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
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
- 比較文檔時
使用引用相等