溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java中的集合是什么

發(fā)布時(shí)間:2020-06-12 19:27:07 來(lái)源:億速云 閱讀:156 作者:鴿子 欄目:編程語(yǔ)言

什么是集合?

1、集合類(lèi)存放于java.util包中。

2、集合類(lèi)型主要有3種:set(集)、list(列表)和map(映射)。

3、集合存放的都是對(duì)象的引用,而非對(duì)象本身。所以我們稱(chēng)集合中的對(duì)象就是集合中對(duì)象的引用。

簡(jiǎn)單來(lái)講:集合就是一個(gè)放數(shù)據(jù)的容器,準(zhǔn)確的說(shuō)是放數(shù)據(jù)對(duì)象引用的容器。

注意:

● 集合只能存放對(duì)象。比如你存入一個(gè)int型數(shù)據(jù)66放入集合中,其實(shí)它是自動(dòng)轉(zhuǎn)換成Integer類(lèi)后存入的,Java中每一種基本數(shù)據(jù)類(lèi)型都有對(duì)應(yīng)的引用類(lèi)型。

● 集合存放的都是對(duì)象的引用,而非對(duì)象本身。所以我們稱(chēng)集合中的對(duì)象就是集合中對(duì)象的引用。對(duì)象本身還是放在堆內(nèi)存中。

● 集合可以存放不同類(lèi)型,不限數(shù)量的數(shù)據(jù)類(lèi)型。

集合的由來(lái)

通常,我們的Java程序需要根據(jù)程序運(yùn)行時(shí)才知道創(chuàng)建了多少個(gè)對(duì)象。但若非程序運(yùn)行,程序開(kāi)發(fā)階段,我們根本不知道到底需要多少個(gè)數(shù)量的對(duì)象,甚至不知道它的準(zhǔn)確類(lèi)型。為了滿足這些常規(guī)的編程需要,我們要求能在任何時(shí)候,任何地點(diǎn)創(chuàng)建任意數(shù)量的對(duì)象,而這些對(duì)象用什么來(lái)容納呢?我們首先想到了數(shù)組,但是!數(shù)組只能存放同一類(lèi)型的數(shù)據(jù),而且其長(zhǎng)度是固定的,那怎么辦了?集合便應(yīng)運(yùn)而生了。

Java 集合框架主要結(jié)構(gòu)圖

java中的集合是什么

發(fā)現(xiàn)一個(gè)特點(diǎn),上述所有的集合類(lèi),除了map系列的集合,即左邊的集合都實(shí)現(xiàn)了Iterator接口。

Iterator是一個(gè)用來(lái)遍歷集合中元素的接口,主要有hashNext(),next(),remove()三種方法。

它的子接口ListIterator在它的基礎(chǔ)上又添加了三種方法,分別是add(),previous(),hasPrevious()。

從圖中我們可以看到:

1、集合主要分為Collection和Map兩個(gè)接口。

2、Collection又分別被List和Set繼承。

3、List被AbstractList實(shí)現(xiàn),然后分為3個(gè)子類(lèi),ArrayList,LinkList和VectorList。

4、Set被AbstractSet實(shí)現(xiàn),又分為2個(gè)子類(lèi),HashSet和TreeSet。

5、Map被AbstractMap實(shí)現(xiàn),又分為2個(gè)子類(lèi),HashMap和TreeMap。

6、Map被Hashtable實(shí)現(xiàn)。

以上就是java的集合是什么?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI