常見的集合類分以下幾個種類:java
Collection算法
- List - ArrayList - LinkedList - Set - HashSet - TreeSet
Mapsegmentfault
- HashMap - TreeMap
Collection接口是List和Set接口的父接口,也是集合類(Map除外)根接口。 裏面定義了不少的集合操做方法,源碼就不放了,我講=將裏面涉及到的一些方法截圖出來,如圖所示:
這裏面的方法能夠自行百度其用法。數組
List集合中元素的存放特色是:元素有序,同一元素可重複。List接口存在兩個實現類,ArrayList和LinkedList。二者之間雖然都是用於存放有序可重複的元素,可是二者之間存在必定的區別;安全
1.ArrayList:底層實現是一個動態數組,查詢經過數組下標查詢; 2.LinkedList:底層實現是鏈表結構,查詢的過程須要重頭到位一個一個過濾對比
總結:因此咱們能夠得出 ArrayList 查詢速度要優於LinkedList,可是LinkedList的插入速度要優於ArrayList;因此咱們在使用的過程當中,查詢多使用 ArrayList ,查詢刪除多,使用 LinkedList 。性能
HashSet類直接實現了Set接口, 其底層實際上是包裝了一個HashMap去實現的。HashSet採用HashCode算法來存取集合中的元素,所以具備比較好的讀取和查找性能。spa
底層是用TreeMap實現的,本質上是一個紅黑樹原理。線程
java中的Map集合使用鍵(key)值(value)來保存數據,其中值(value)能夠重複,但鍵(key)必須是惟一,也能夠爲空,但最多隻能有一個key爲空,它的主要實現類有HashMap、TreeMap。code
Java中集合是一個很是重要的知識點,在實際運用中也是經常會使用到。每一個不一樣的集合類的特徵對於咱們在使用選擇上有着直接關係,因此熟悉他們的特徵很是重要對象