理解java集合——集合框架 Collection、Map

一、概述: @white

Java集合就像一種容器,能夠把多個對象(其實是對象的引用,但習慣上都稱對象)「丟進」該容器中。java

二、Java集合大體能夠分4類: @white

Set:表明無序、不可重複的集合;
List:表明有序、重複的集合;
Map:表明具備映射關係的集合
Queue:表明一種隊列集合實現;(Java 5增長)數組

三、Java集合和數組的區別 @white

一、長度:
數組:只能保存定長的數據,長度在初始化時指定;
集合:可保存數量不肯定的數據。
二、保存數據類型:
數組:基本類型和對象。
集合:只能保存對象(實際保存對象的引用變量),基本數據類型變量需轉換爲對應的包裝類才能放入集合類中。框架

四、接口和類圖說明: @white

4.1 總體說明:

這個主要是看類圖,若是你結合類圖,仔細看過源碼,那麼這些理解都不是問題。由於你只是看教程,缺乏第一手資料,缺乏細節,反而老是更加不理解。學習

4.2 類圖:

https://upload-images.jianshu.io/upload_images/2993097-d92fdc13030b2126.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/650
圖片來源:Java集合框架學習-----Collection接口概述 - 簡書 https://www.jianshu.com/p/b878a4e1c762spa

4.3 類圖圖例使用說明:

接口:用虛線框表示:
類:用實線框表示;
接口和接口之間的實現:用虛線和空白三角表示;
類與類之間,以及類與接口之間的實現:用實現線和空白三角
produce關係-即之間有關係,但並不是直接實現:虛線和實心三角對象

4.4 Collection接口:主要包含以下子接口

Set 接口:
List 接口:
Queue接口:(隊列:先進先出)繼承

4.5 Map接口和Collection接口的關係:(之間沒有實際繼承關係,只是)

一、雖然老是將Map和List 以及Set 一塊兒說,但實際上Map和List 以及Set並非同級關係。List 和Set是Collection的子接口;Map並非,Map並不屬於Collection接口系列。
二、Map和Collection的關係在於Map的實現上。由於Map的全部key實際是一個Set對象,Map的全部value也是一個Collection接口對象。(可看Map接口源碼)
三、其餘,並無太多關係。教程

五、各個接口特性說明以及經常使用實現類: @white

5.1 Set 接口: @white

5.1.1 特性說明:

元素不容許重複,無序接口

5.1.2 經常使用實現類:

HashSet:
LinkedHashSet
TreeSet
EnumSet隊列

5.2 List 接口: @white

5.2.2 特性說明:

有序

5.2.2 經常使用實現類:

ArrayList:
LinkedList:
Vector
Stack

5.3 Queue接口: @white

5.3.2 特性說明:

隊列:先進先出

5.3.2 經常使用實現類:

PriorityQueue
Deque(子接口)
ArrayDeque

5.4 Map接口 @white

5.4.1 特性說明:

保存具備映射關係的數據;
key和value均可以是任何引用類型的數據。
Map的key不容許重複(任何兩個key比較老是返回false)
實質:全部key是一個Set集合,全部value幾乎是一個List集合

5.4.2 經常使用實現類:

HashTable
HashMap:
LinkedHashMap
TreeMap:

六、其餘相關接口說明: @white

6.1 Iterator接口

6.1.1 概念:

被稱做迭代器,是Collection接口的父接口。
主要用於遍歷Collection集合中的元素。

6.1.2 主要注意:

修改迭代變量的值對集合元素自己沒有任何影響。

6.1.2.1 緣由:

使用Iterator對集合元素進行迭代時;
Iterator並非把集合元素自己傳給了迭代變量,而是把集合元素的值傳給了迭代變量(就如同參數傳遞是值傳遞,基本數據類型傳遞的是值,引用類型傳遞的僅僅是對象的引用變量)
因此除非實際修改該對象指向的內容,不然不會對集合產生影響。

6.1.2.2 緣由分析和詳解:

具體能夠參考:由淺入深理解java集合(一)——集合框架 Collection、Map - 簡書 https://www.jianshu.com/p/589d58033841

七、參考: @white

本文參考:由淺入深理解java集合(一)——集合框架 Collection、Map - 簡書 https://www.jianshu.com/p/589d58033841(這個系列的全部文章)

相關文章
相關標籤/搜索