1. 程式人生 > >【新手向】如何學習Java集合

【新手向】如何學習Java集合

前言

只有光頭才能變強。

文字已收錄至我的GitHub精選文章,歡迎Star:https://github.com/ZhongFuCheng3y/3y

如果認識我的同學可能就知道,我已經寫過很多系列級的文章了,但是沒有一篇是寫給剛入門的同學來看的,大多數都是依照我個人的學習進度來編寫。

雖然可以按照我的文章順序去一篇一篇閱讀,但是如果是新入門的同學可能更希望得到的是一個學習指南(路線指引)。於是我就有了這篇文章,希望對剛入門的同學有所幫助。

如果這篇文章的反響不錯,會持續更新其他的專題。覺得我寫得不錯,希望可以給我一個贊!

Java集合學習指南

本文會提出很多可能新手會想到的問題,但不會一一解答,只會往大方向去說明白。本文的內容偏向於指南,而非技術教程講解。

如果想要得到具體的答案,可以翻閱我曾經寫過的資料:https://github.com/ZhongFuCheng3y/3y,或者加入人才交流群跟眾多開發者討論,前面的Github連結有我的聯絡方式。

學習一項技術之前,必須知道為什麼要學它!

Q: 我們得知道為什麼要學習Java集合,學到Java集合的時候已經學過了陣列了,為什麼我不用陣列反而用Java集合。陣列和Java集合有什麼區別?

A:Java是一門面向物件的語言,就免不了處理物件,為了方便操作多個物件,那麼我們就得把這多個物件儲存起來,想要儲存多個物件(變數),很容易就能想到一個容器(集合)來裝載

總的來說:就是Java給我們提供了工具方便我們去操作多個Java物件。

如何入門學習Java集合

Q: 從上面我們已經知道了為什麼要學Java集合,下面我們就該知道Java集合的基本用法,以及從它整體的知識點去了解它是什麼

A: 我們學習Java集合實際上就是為了方便操作多個物件,而Java給我們提供一系列的API(方法)供我們去操作。所以在初學Java集合的時候我們更多的是學習這些API(方法)分別是什麼意思。

Q: 對Java集合的API使用有一定的瞭解之後,我們就應該從面向物件的角度去理解它。為什麼會抽象出多個介面,以及每個介面的有什麼特性。

A: 我們可以總結出幾個常用的實現類,這幾個常用的實現類我們必須要知道它的資料結構是什麼,什麼時候使用這個類。

需要學習和了解的資料結構:

到這裡,我們簡單瞭解各個實現類的資料結構以後,我們可能會簡單記住下面的結論:

  • 如果是集合型別,有List和Set供我們選擇。List的特點是插入有序的,元素是可重複的。Set的特點是插入無序的,元素不可重複的。至於選擇哪個實現類來作為我們的儲存容器,我們就得看具體的應用場景。是希望可重複的就得用List,選擇List下常見的子類。是希望不可重複,選擇Set下常見的子類。
  • 如果是Key-Value型,那我們會選擇Map。如果要保持插入順序的,我們可以選擇LinkedHashMap,如果不需要則選擇HashMap,如果要排序則選擇TreeMap。
  • 總之:學完常見實現類的資料結構之後,你對它的使用場景就有一個清楚的認知了。

集合進階與面試

如果我們在寫程式碼的時候懂得選擇什麼樣的集合作為我們的容器,那已經是入門了。但要知道的是,如果去面試之前,你懂的不應該只有這麼少。

(如果還在初學或者零基礎的同學我建議可以跳過這一部分,在網上有可能很多言論,比如:“如果你Java基礎紮實的話,那你以後找工作就不愁了。在學Java基礎的時候一定要把基礎學好,看原始碼!”。但我認為,這一塊是建立在有一定的編碼/專案或者是去找工作的時候才成立的,一個剛入門學Java的,就不應該看原始碼,這很容易把自己勸退了)

我的觀點是:如果剛入門學Java,首先你要十分清楚知道為什麼要學這個,這個到底有什麼用,用在哪些地方,以及熟悉常用的方法,就足夠了。即便你花了兩週左右時間去看原始碼實現了,可能看懂了。但是,你相信我,你大概率會忘掉。

Java集合是面試的重點,我在面試的時候幾乎每家公司都會問集合的問題,從基礎到原始碼,一步一步深入。Java集合面試的知識點就不限於基本的用法了。可能面試官會問你:

  • HashMap的資料結構是什麼?他是怎麼擴容的?底層有沒有用紅黑樹?取Key Hash值是JDK原始碼是怎麼實現的?為什麼要這樣做?
  • HashMap是執行緒安全的嗎?什麼是執行緒安全?有什麼更好的解決方案?那執行緒安全的HashMap是怎麼實現的?
  • HashSet是如何判斷Key是重複的?
  • .....很多很多

如果想要得到具體的答案,可以翻閱我曾經寫過的資料:https://github.com/ZhongFuCheng3y/3y,或者加入人才交流群跟眾多開發者討論,前面的文章連結有我的聯絡方式。

腦圖的原圖在GitHub上也有獲取的方式

最後

總的來說,入門Java集合並不難,歸根到底我認為就是三件事:

  • 瞭解為什麼要學習Java集合
  • 學習Java集合的各個介面以及常用的實現類用法
  • 學習常用實現類的資料結構是什麼,能在寫程式碼的時候選擇一個合適的實現類裝載自己的物件。

零基礎入門不需要閱讀原始碼,面試前一定要回顧和閱讀原始碼(這是面試必考的知識點)!

本已收錄至我的GitHub精選文章,歡迎Star:https://github.com/ZhongFuCheng3y/3y

樂於輸出乾貨的Java技術公眾號:Java3y。公眾號內有300多篇原創技術文章、海量視訊資源、精美腦圖,關注即可獲取!

非常感謝人才們能看到這裡,如果這個文章寫得還不錯,覺得「三歪」我有點東西的話 求點贊 求關注️ 求分享