Java常見集合知識詳解

集合的種類

常見的集合類分以下幾個種類:java

  • Collection算法

    - List
        - ArrayList
        - LinkedList
    - Set
        - HashSet
        - TreeSet
  • Mapsegmentfault

    - HashMap
    - TreeMap

Collection 詳解

Collection接口是List和Set接口的父接口,也是集合類(Map除外)根接口。 裏面定義了不少的集合操做方法,源碼就不放了,我講=將裏面涉及到的一些方法截圖出來,如圖所示:
圖片描述
這裏面的方法能夠自行百度其用法。數組

List接口

List集合中元素的存放特色是:元素有序,同一元素可重複。List接口存在兩個實現類,ArrayList和LinkedList。二者之間雖然都是用於存放有序可重複的元素,可是二者之間存在必定的區別;安全

1.ArrayList:底層實現是一個動態數組,查詢經過數組下標查詢;
2.LinkedList:底層實現是鏈表結構,查詢的過程須要重頭到位一個一個過濾對比

總結:因此咱們能夠得出 ArrayList 查詢速度要優於LinkedList,可是LinkedList的插入速度要優於ArrayList;因此咱們在使用的過程當中,查詢多使用 ArrayList ,查詢刪除多,使用 LinkedList 。性能

Set集合

HashSet

HashSet類直接實現了Set接口, 其底層實際上是包裝了一個HashMap去實現的。HashSet採用HashCode算法來存取集合中的元素,所以具備比較好的讀取和查找性能。spa

HashSet的特徵

  • 不能保證元素插入的順序,由於HashSet按HashCode存儲對象(元素)決定的,對象變化則可能致使HashCode變化
  • HashSet是線程非安全的
  • HashSet元素值能夠爲NULL

TreeSet類的特徵

底層是用TreeMap實現的,本質上是一個紅黑樹原理。線程

Map接口

java中的Map集合使用鍵(key)值(value)來保存數據,其中值(value)能夠重複,但鍵(key)必須是惟一,也能夠爲空,但最多隻能有一個key爲空,它的主要實現類有HashMap、TreeMap。code

HashMap

HashMap的特徵

  • 保存元素時先進後出、無序性;
  • 鍵值能夠爲null,但最多隻能爲一個null;
  • 不支持線程同步,便可以有多個線程同時寫HashMap,可能致使數據不一致,若是須要同步可使用Collection的synchronizedMap方法使其同步。

TreeMap的特徵

  • 保存元素key-value不能爲null;
  • 容許key-value重複;
  • 遍歷元素時隨機排列。

總結

Java中集合是一個很是重要的知識點,在實際運用中也是經常會使用到。每一個不一樣的集合類的特徵對於咱們在使用選擇上有着直接關係,因此熟悉他們的特徵很是重要對象

相關文章
相關標籤/搜索