更新時(shí)間:2019-12-12 16:12:28 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2224次
集合是一種數(shù)據(jù)結(jié)構(gòu),在編程中是非常重要的。好的程序就是好的數(shù)據(jù)結(jié)構(gòu)+好的算法。java中為我們實(shí)現(xiàn)了曾經(jīng)在大學(xué)學(xué)過(guò)的數(shù)據(jù)結(jié)構(gòu)與算法中提到的一些數(shù)據(jù)結(jié)構(gòu)。如順序表,鏈表,棧和堆等。Java 集合框架API是用來(lái)表示和操作集合的統(tǒng)一框架,它包含接口,實(shí)現(xiàn)類(lèi)以及一些編程輔助算法。具體位于java.util包下。
java集合框架UML圖
從上面的UML圖中可以看出,集合框架可以簡(jiǎn)單的分為四部分
Collection接口以及實(shí)現(xiàn)類(lèi)
Map接口及其實(shí)現(xiàn)類(lèi)
Iterator接口及實(shí)現(xiàn)類(lèi)
輔助工具類(lèi)
Collections、Arrays類(lèi)
Collections、Arrays是集合類(lèi)的一個(gè)工具類(lèi)/幫助類(lèi),其中提供了一系列靜態(tài)方法,用于對(duì)集合中 元素進(jìn)行排序、查找等各種操作。
Comparable、Comparator接口
一般是用于對(duì)象的比較來(lái)實(shí)現(xiàn)排序,兩者略有區(qū)別
Comparable用作默認(rèn)的比較方式,實(shí)現(xiàn)了該接口的類(lèi)之間可以相互進(jìn)行比較,這個(gè)對(duì)象組成的集合就可以直接通過(guò)sort()進(jìn)行排序了。
Comparator是設(shè)計(jì)模式中策略模式的一種應(yīng)用。將算法的實(shí)現(xiàn)和數(shù)據(jù)進(jìn)行了分離。
一般用在如下情況下:
1、類(lèi)設(shè)計(jì)者沒(méi)有考慮到比較問(wèn)題而沒(méi)有實(shí)現(xiàn)Comparable接口。這是我們就可以通過(guò)使用Comparator,這種情況下,我們是不需要改變對(duì)象的。
2、一個(gè)集合中,我們可能需要有多重的排序標(biāo)準(zhǔn),這時(shí)候如果使用Comparable就難實(shí)現(xiàn)了可以實(shí)現(xiàn)Comparator提供多種標(biāo)準(zhǔn)的比較器進(jìn)行排序。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“深入Java集合學(xué)習(xí)系列:集合框架”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)