Java集合框架(Collection Framework)學習之 Collection與Map概貌

寫過Java的人都知道Java集合類,也用過Java集合類。Java集合類位於 java.util 這個包下,就像它的包名暗示的那樣,Java集合類就是一套工具。它就像工匠的工具箱同樣,它能給使用它的人提供便利與效率。正所謂」工欲上其事,必先利其器。「 若是咱們想更好地、更高效率地完成任務,咱們須要熟悉咱們手上的工具。Java集合類就是這樣的工具,只要咱們可以熟練使用它,它就能夠顯著地提升咱們的工做效率、讓咱們事半功倍。html

先說說我對Java集合框架的理解: Java集合框架不是什麼高深的技術,也不是什麼苦澀的知識,它只是把經常使用的數據結構和算法集合在一塊兒,讓咱們不用重複造輪子,能更輕鬆地、更高效地處理數據。就像就像Oracle的Java教程說的那樣:Java集合框架經過提供高性能、高質量的數據結構和算法來提升程序的速度和質量並減輕你的編程負擔。因此咱們沒必要懼怕學不會Java集合框架。既然是工具,多用幾回就能夠熟能生巧了。固然有數據結構基本能更輕鬆地掌握它。java

稍微學習過Java集合類都知道,Java集合類這個工具箱真的太多工具了,不只有List、有Map、有Set等。List中又有ArrayList、LinkedList等,Map中又有HashMap、TreeMap等,Set中又有。。。 此刻你是否想說:」WTF,這麼多怎麼學?哥不學了,洗洗睡去吧。「 但我想說,少年,稍安勿躁!萬事都有規律,只要掌握了規律再多的東西都能掌握。算法

Collection與Map的區別

Java集合類分爲兩大類:Collection和Map。爲何要這樣分類呢?編程

先看Collection。Collection翻譯爲中文是」集合「的意思。學過數學都知道,集合是一類元素組成的集體,它的每個單位元素都是單一的個體。咱們能夠把Collection當作是一個裝着球的格子箱,箱裏的每個格子只能放一個球:api

Map。Map有」映射「的意思。根據百度百科對 映射 的定義 ,咱們知道映射是成對出現的,有 纔有 :)。因此映射的單位元素都是一對有關聯的個體。咱們一樣能夠把Map當作是一個裝着球的格子箱,不一樣的是此次箱裏的每一個格子裝的是兩個有關聯的球:數據結構

總結oracle

  • Collection: 單一個體組成的集合,每一個單位只能包含一個元素。
  • Map: 一對有關聯的個體組成的集合,每一個單位都是一對相關聯的元素。

集合類概貌

分析完Collection與Map的區別後咱們分別來看看它們的概貌,以便咱們更好地學習它們以及它們的子集。(如下的圖中,紅色的類,白色的接口。爲何把接口和類分開呢?由於咱們在實際操做的時候通常是實例化類的,接口通常用來向上轉型的。你總不能new個接口吧?並且咱們主要學的也是具體的類而不是接口)框架

咱們先看Collection與Map的層次圖:數據結構和算法

  • Collection:
    工具

  • Map:

這種圖有什麼做用呢?這種圖對咱們學習Java集合大有裨益。我總結了幾點:

  1. 咱們在學習集合類的時候,能夠參考圖中的層次關係自上而下地學習,先學習頂層的類再學習下面的類。這樣一來,咱們就能夠把共有的方法一塊兒學了,在學習具體的類時只需學習它特有的方法。
  2. 在使用具體的類時也有好處,好比,使用ArrayList時,咱們知道他屬於Collection而Collection添加元素的共有方法是 add 。使用HashMap時,咱們又知道它書屬於Map而Map添加元素的共有方法是 put 。這樣咱們就不會把它們添加元素的方法搞混了。
  3. 方便咱們記憶。在選擇數據結構是,咱們能夠先分析是Collection仍是Map合適。而後在從上往下回憶有哪些類可使用。
  4. 能讓咱們更瞭解集合類。就我我的來講,在使用ArrayList時若是不清楚他的層次樹總感受」不太安心「。這個類就像憑空出現的同樣,不知道它從哪裏來又將去到哪。若是有它的層次圖就有一種「全部的障礙都消失了」的感受,有掌握全局的快感。
  5. 不知道。因爲我的經驗有限,暫時沒想到其餘的做用:)

最後給出Collection與Map接口定義的接口文檔(方便之後本身查看:))

好了,今天就到這,以後在來總結集合類的其餘具體子集!!

相關文章
相關標籤/搜索