java 集合分為 Collection 和 Map 兩大類 Collection 是 Java 集合框架的頂層介面,它是對容器類進行增、刪、改、查的定義,同時繼承了 Iterable 介面,具有對集合或容器中的元素進行遍歷的能力 Collection 繼承了 Iterable 介面,具有了快速遍歷 ...
java 集合分為 Collection 和 Map 兩大類
Collection 是 Java 集合框架的頂層介面,它是對容器類進行增、刪、改、查的定義,同時繼承了 Iterable 介面,具有對集合或容器中的元素進行遍歷的能力
Collection 繼承了 Iterable 介面,具有了快速遍歷的能力,Iterable 介面中定義了獲取集合迭代器的方法 iterator(),該方法返回一個容器的迭代器,迭代器介面中定義 2 個方法用於結合 while 或 for 迭代
根據存儲數據結構把 Collection 細分為兩種子集合:
List:元素有序,可重覆(不唯一)的集合,包含以下三個實現類:
ArrayList 是 List 介面的可變數組的實現類,可以自動拓容
Vector(已過時)
LinkedList 是 List 的實現類,底層數據結構是鏈表
Set:元素無序,唯一的集合,包含以下兩個實現類:
HashSet 是 Set 介面的實現類,底層數據結構是 Hash 表/散列表,查找效率高、添加效率高、刪除效率高
LinkedHashSet 底層數據結構是 Hash 表+鏈表,通過內部的鏈表維持添加次序,繼承於 HashSet
TreeSet 是 Set 介面的實現類,底層數據結構是二叉樹,排序後查詢速度比 HashSet 快
Map 表示映射關係的集合,裡面存儲的元素是 key-value(鍵值對),鍵值對就表示映射關係,裡面 key 唯一
包含有以下三個子集合:
HashMap 是 Map 的實現類,其中 key 是按照 HashSet 存儲的
LinkedHashMap 是 Map 的實現類,其中 key 是按照 LinkedHashSet 存儲的
TreeMap 是 Map 的實現類,其中 key 是按照 TreeSet 存儲的
總結:
名稱 |
存儲結構 |
順序 |
唯一性 |
查詢效率 |
添加/刪除效率 |
ArrayList |
順序表 |
有序(添加) |
不唯一 |
高 |
低 |
LinkedList |
鏈表 |
有序(添加) |
不唯一 |
低 |
最高 |
HashSet |
Hash表 |
無序 |
唯一 |
最高 |
最高 |
HashMap |
Hash表 |
Key無序 |
Key唯一 |
最高 |
最高 |
LinkedHashSet |
Hash+鏈 |
有序(添加) |
唯一 |
最高 |
最高 |
LinkedHashMap |
Hash+鏈 |
Key有序( 添加) |
Key唯一 |
最高 |
最高 |
TreeSet |
二叉樹 |
有序(升序) |
唯一 |
中等 |
中等 |
TreeMap |
二叉樹 |
有序(升序) |
Key唯一 |
中等 |
中等 |