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


前言

只有光頭才能變強。

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

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

系列級文章

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

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

Java集合學習指南

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

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

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

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

學習Java集合先需要知道

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

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

方便操作多個對象

如何入門學習Java集合

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

入門Java集合

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

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精選文章,歡迎Starhttps://github.com/ZhongFuCheng3y/3y

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

轉發到朋友圈是對我最大的支持!

非常感謝人才們能看到這里,如果這個文章寫得還不錯,覺得「三歪」我有點東西的話 求點贊 求關注️ 求分享👥 求留言💬 對暖男我來說真的 非常有用!!!

創作不易,各位的支持和認可,就是我創作的最大動力,我們下篇文章見!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM