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

 

 

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

 

集合類的選用

在平時(shí)開發(fā)中,程序員們使用最多了莫過于ArrayList、HashSet和HashMap了。在多數(shù)情況下,這三個(gè)實(shí)現(xiàn)類已經(jīng)能夠滿足我們的大部分需求,但是如果稍加分析我們可能會(huì)發(fā)現(xiàn)另外一些集合實(shí)現(xiàn)類能更好的滿足我們的需要。比如,當(dāng)你需要一個(gè)有順序的Set時(shí),可以考慮選用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í)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式