Java中ListSet和Map之間的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)

Java集合的主要分為三種類型:

創(chuàng)新互聯(lián)主營(yíng)磐安網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開(kāi)發(fā)公司,磐安h5成都小程序開(kāi)發(fā)搭建,磐安網(wǎng)站營(yíng)銷推廣歡迎磐安等地區(qū)企業(yè)咨詢

• Set(集)

• List(列表)

• Map(映射)

要深入理解集合首先要了解下我們熟悉的數(shù)組:

數(shù)組是大小固定的,并且同一個(gè)數(shù)組只能存放類型一樣的數(shù)據(jù)(基本類型/引用類型),而JAVA集合可以存儲(chǔ)和操作數(shù)目不固定的一組數(shù)據(jù)。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用類型的的數(shù)據(jù),不能存放基本數(shù)據(jù)類型。

世間上本來(lái)沒(méi)有集合,(只有數(shù)組參考C語(yǔ)言)但有人想要,所以有了集合

有人想有可以自動(dòng)擴(kuò)展的數(shù)組,所以有了List

有的人想有沒(méi)有重復(fù)的數(shù)組,所以有了set

有人想有自動(dòng)排序的組數(shù),所以有了TreeSet,TreeList,Tree**

而幾乎有有的集合都是基于數(shù)組來(lái)實(shí)現(xiàn)的.

因?yàn)榧鲜菍?duì)數(shù)組做的封裝,所以,數(shù)組永遠(yuǎn)比任何一個(gè)集合要快

但任何一個(gè)集合,比數(shù)組提供的功能要多

 數(shù)組聲明了它容納的元素的類型,而集合不聲明。這是由于集合以object形式來(lái)存儲(chǔ)它們的元素。

 一個(gè)數(shù)組實(shí)例具有固定的大小,不能伸縮。集合則可根據(jù)需要?jiǎng)討B(tài)改變大小。

 數(shù)組是一種可讀/可寫數(shù)據(jù)結(jié)構(gòu)---沒(méi)有辦法創(chuàng)建一個(gè)只讀數(shù)組。然而可以使用集合提供的ReadOnly方法,以只讀方式來(lái)使用集合。該方法將返回一個(gè)集合的只讀版本。

Java所有“存儲(chǔ)及隨機(jī)訪問(wèn)一連串對(duì)象”的做法,array是最有效率的一種。

1、效率高,但容量固定且無(wú)法動(dòng)態(tài)改變。

array還有一個(gè)缺點(diǎn)是,無(wú)法判斷其中實(shí)際存有多少元素,length只是告訴我們array的容量。

2、Java中有一個(gè)Arrays類,專門用來(lái)操作array。

     arrays中擁有一組static函數(shù),

   equals():比較兩個(gè)array是否相等。array擁有相同元素個(gè)數(shù),且所有對(duì)應(yīng)元素兩兩相等。

   fill():將值填入array中。

   sort():用來(lái)對(duì)array進(jìn)行排序。

   binarySearch():在排好序的array中尋找元素。

   System.arraycopy():array的復(fù)制。

若撰寫程序時(shí)不知道究竟需要多少對(duì)象,需要在空間不足時(shí)自動(dòng)擴(kuò)增容量,則需要使用容器類庫(kù),array不適用。所以就要用到集合。
那我們開(kāi)始討論java中的集合。

集合分類:

Collection:List、Set

Map:HashMap、HashTable

Collection接口

Collection是最基本的集合接口,聲明了適用于JAVA集合(只包括Set和List)的通用方法。 Set 和List 都繼承了Conllection,Map。

Collection接口的方法:

 boolean add(Object o)      :向集合中加入一個(gè)對(duì)象的引用
 void clear():刪除集合中所有的對(duì)象,即不再持有這些對(duì)象的引用
 boolean isEmpty()    :判斷集合是否為空
 boolean contains(Object o) : 判斷集合中是否持有特定對(duì)象的引用
 Iterartor iterator()  :返回一個(gè)Iterator對(duì)象,可以用來(lái)遍歷集合中的元素
 boolean remove(Object o) :從集合中刪除一個(gè)對(duì)象的引用
 int size()       :返回集合中元素的數(shù)目
 Object[] toArray()    : 返回一個(gè)數(shù)組,該數(shù)組中包括集合中的所有元素

關(guān)于:Iterator() 和toArray() 方法都用于集合的所有的元素,前者返回一個(gè)Iterator對(duì)象,后者返回一個(gè)包含集合中所有元素的數(shù)組。

Iterator接口聲明了如下方法:

 hasNext():判斷集合中元素是否遍歷完畢,如果沒(méi)有,就返回true
 next() :返回下一個(gè)元素
 remove():從集合中刪除上一個(gè)有next()方法返回的元素。

Set(集合)

Set是最簡(jiǎn)單的一種集合。集合中的對(duì)象不按特定的方式排序,并且沒(méi)有重復(fù)對(duì)象。 Set接口主要實(shí)現(xiàn)了兩個(gè)實(shí)現(xiàn)類:

• HashSet: HashSet類按照哈希算法來(lái)存取集合中的對(duì)象,存取速度比較快
• TreeSet :TreeSet類實(shí)現(xiàn)了SortedSet接口,能夠?qū)现械膶?duì)象進(jìn)行排序。

Set 的用法:存放的是對(duì)象的引用,沒(méi)有重復(fù)對(duì)象

Set set=new HashSet();  
 String s1=new String("hello");  
 String s2=s1;  
 String s3=new String("world");  
 set.add(s1);  
 set.add(s2);  
 set.add(s3);  
 System.out.println(set.size());//打印集合中對(duì)象的數(shù)目 為 2。 

名稱欄目:Java中ListSet和Map之間的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)
標(biāo)題鏈接:http://muchs.cn/article16/hodgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化用戶體驗(yàn)、虛擬主機(jī)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化