更新時(shí)間:2019-12-20 14:37:38 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2467次
一、集合的由來
通常,我們的程序需要根據(jù)程序運(yùn)行時(shí)才知道創(chuàng)建多少個(gè)對象。但若非程序運(yùn)行,程序開發(fā)階段,我們根本不知道到底需要多少個(gè)數(shù)量的對象,甚至不知道它的準(zhǔn)確類型。為了滿足這些常規(guī)的編程需要,我們要求能在任何時(shí)候,任何地點(diǎn)創(chuàng)建任意數(shù)量的對象,而這些對象用什么來容納呢?我們首先想到了數(shù)組,但是數(shù)組只能放統(tǒng)一類型的數(shù)據(jù),而且其長度是固定的,那怎么辦呢?集合便應(yīng)運(yùn)而生了!
二、集合是什么?
Java集合類存放于 java.util 包中,是一個(gè)用來存放對象的容器。
注意:①、集合只能存放對象。比如你存一個(gè) int 型數(shù)據(jù) 1放入集合中,其實(shí)它是自動(dòng)轉(zhuǎn)換成 Integer 類后存入的,Java中每一種基本類型都有對應(yīng)的引用類型。
②、集合存放的是多個(gè)對象的引用,對象本身還是放在堆內(nèi)存中。
③、集合可以存放不同類型,不限數(shù)量的數(shù)據(jù)類型。
三、Java 集合框架圖
發(fā)現(xiàn)一個(gè)特點(diǎn),上述所有的集合類,除了 map 系列的集合,即左邊集合都實(shí)現(xiàn)了 Iterator 接口,這是一個(gè)用于遍歷集合中元素的接口,主要hashNext(),next(),remove()三種方法。它的一個(gè)子接口 ListIterator 在它的基礎(chǔ)上又添加了三種方法,分別是 add(),previous(),hasPrevious()。也就是說如果實(shí)現(xiàn) Iterator 接口,那么在遍歷集合中元素的時(shí)候,只能往后遍歷,被遍歷后的元素不會(huì)再被遍歷到,通常無序集合實(shí)現(xiàn)的都是這個(gè)接口,比如HashSet;而那些元素有序的集合,實(shí)現(xiàn)的一般都是 LinkedIterator接口,實(shí)現(xiàn)這個(gè)接口的集合可以雙向遍歷,既可以通過next()訪問下一個(gè)元素,又可以通過previous()訪問前一個(gè) 元素,比如ArrayList。
還有一個(gè)特點(diǎn)就是抽象類的使用。如果要自己實(shí)現(xiàn)一個(gè)集合類,去實(shí)現(xiàn)那些抽象的接口會(huì)非常麻煩,工作量很大。這個(gè)時(shí)候就可以使用抽象類,這些抽象類中給我們提供了許多
現(xiàn)成的實(shí)現(xiàn),我們只需要根據(jù)自己的需求重寫一些方法或者添加一些方法就可以實(shí)現(xiàn)自己需要的集合類,工作量大大降低。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java培訓(xùn)教程:Java集合詳解”的內(nèi)容,希望對大家有幫助,如有疑問,請?jiā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)閱讀
初級 202925
初級 203221
初級 202629
初級 203743