在Java中,我們經(jīng)常聽到Collections框架、Collection類以及Collections類。這三者名字相似,但是從概念上講卻是不同的。Collections框架泛指Java中用于存儲和操作集合的類庫總和,其中包括了List、Set和Map等。但是在具體實現(xiàn)上,由于Map中裝的是Key-Value的鍵值對元素,其接口形式和其他(比如List)接口不一樣,因此在Java中Map被區(qū)分對待了。總的來看,位于Java Collections框架中最頂層的接口有兩個,Collection類和Map類,此時整個Java Collections框架的類層級如下:

 

 

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

 

 

Java中存在不少泛化的方法能夠直接對Collection接口進(jìn)行操作,而不用關(guān)心具體的實現(xiàn)類是什么,比如在查找一個集合中的最大值元素的時候——即實現(xiàn)一個max()方法,此時我們并不需要知道這個集合具體的實現(xiàn)類是ArrayList還是HashSet,而只需要知道這是一個Collection集合即可。另外,這個max()方法對于所有具體實現(xiàn)類來說其實原理是一樣的,因此沒有必要讓每一個集合實現(xiàn)類自己再去實現(xiàn)一份?;诖?,Java引入了一個Collections工具類來輔助實現(xiàn)這些方法,比如操作集合和創(chuàng)建集合等。由于名字和Collection相似,Collections通常給程序員們帶來誤解,這一點需要注意。當(dāng)然,Java 8中引入了“默認(rèn)方法”(Default Method)的技術(shù),使得理論上諸如max()這樣的方法可以直接實現(xiàn)在Collection接口上。 

 

集合類的選用

在平時開發(fā)中,程序員們使用最多了莫過于ArrayList、HashSet和HashMap了。在多數(shù)情況下,這三個實現(xiàn)類已經(jīng)能夠滿足我們的大部分需求,但是如果稍加分析我們可能會發(fā)現(xiàn)另外一些集合實現(xiàn)類能更好的滿足我們的需要。比如,當(dāng)你需要一個有順序的Set時,可以考慮選用LinkedHashSet而不是HashSet。關(guān)于集合類是選用,可以參考下圖:

 

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

 

 

 

equals()和hashCode()方法

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式