集合Collection的體系結(jié)構(gòu)

集合的體系結(jié)構(gòu):

? ? 由于不同的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的組織刚夺,存儲(chǔ)方式)闸衫,所以java為我們提供了不同的集合涛贯。但是不同的集合他們的功能卻都是相似的,不斷地向上提取楚堤,將共性抽取出來(lái),這就是集合的體系結(jié)構(gòu)形成的原因含懊。

java中的集合類型都是對(duì)java.util包中對(duì)Collection接口的繼承身冬。

Collection中的常用功能(接口)

? ? Collection是接口,不能實(shí)例化岔乔,即不能直接new Collection酥筝,所以這時(shí)便用到了多態(tài),創(chuàng)建對(duì)象的時(shí)候可以寫成Collection c = new ArrayList()雏门;父類的引用指向子類對(duì)象嘿歌。

<1>.boolean add (E e):驗(yàn)證是否添加成功

Collection c = new ArrayList();

System.out.println(c.add("hello"));

//true

<2>.void clear():清空集合

c.clear( );

<3>.boolean contains(Object o ):判斷集合中是否包含有指定元素

<4>.boolean isEmpty( ):判斷是否為空,不為空返回false茁影,為空返回true

<5>.boolean remove(Object o):刪除元素

<6>.int size( ):返回集合中元素個(gè)數(shù)

<7>.Object[ ] toArray():將集合轉(zhuǎn)換成一個(gè)Object類型的數(shù)組

Object [ ] obj = c.toArray( );

集合的遍歷方式:

? ? a.toArray()宙帝,可以把集合轉(zhuǎn)換成數(shù)組,然后遍歷數(shù)組即可募闲。

? ? b.iterator()步脓,可以返回一個(gè)迭代器對(duì)象,我們可以通過(guò)對(duì)象來(lái)迭代集合

Interator:可以用于遍歷集合

? ? E next():返回下一個(gè)元素

例:創(chuàng)建集合對(duì)象 Collection c = new ArrayList( ) ;

? ? ? ? ? ? ? ? ? ? ? ? c.add("hello");

? ? ? ? ? ? ? ? ? ? ? ? c.add("world");

獲取迭代器對(duì)象

? ? Interator it = c.iterator( ) ;?

? ? System.out.println(it.next());

? System.out.println(it.next());

? System.out.println(it.next());

輸出結(jié)果:hello,world靴患,錯(cuò)誤

注意:使用next方法獲取一個(gè)元素仍侥,如果沒有元素可以獲取,則出現(xiàn)一個(gè)異常鸳君,那么就要判斷是否有元素可以獲取农渊,boolean hasNext()就很好的解決了這個(gè)問題。如下例:

將代碼改寫為? ? ?while(it.hasNext()){

? ? ? ? ? ? ? ? ? ? ? ? System.out.println(in.next)或颊;

}

案例:

? ? 需求:判斷集合中是否包含元素java砸紊,如果有則添加元素Android

分析:第一個(gè)方法就是使用Collection中的contains方法來(lái)判斷

第二個(gè)方法就是使用迭代器遍歷集合并與java進(jìn)行比較,如果有則添加饭宾。

迭代器是依賴與集合的批糟,相當(dāng)于集合的一個(gè)副本,當(dāng)?shù)鞑僮鞯臅r(shí)候看铆,如果發(fā)現(xiàn)和集合不一樣徽鼎,則會(huì)拋出異常,解決方案:在使用迭代器進(jìn)行遍歷的時(shí)候弹惦,使用迭代器本身對(duì)象來(lái)修改否淤。

迭代器是沒有添加方法的,去子類ListInterator中有添加方法棠隐,但是Collection獲取不到ListInterator對(duì)象石抡,但是List可以,所以

//創(chuàng)建List集合對(duì)象

List? c= new ArrayList( );

c.add("hello");

c.add("world");

c.add("java");

//獲取ListInterator對(duì)象

ListInterator lit = c.ListInterator( );

? ? while(lit.hasNext()){

? ? ? ? String s = (String)lit.next();

? ? ? ? if(s.equals("java")){

? ? ? ? ? ? lit.add("Android");

}

}

System.out.println(c);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末助泽,一起剝皮案震驚了整個(gè)濱河市啰扛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗡贺,老刑警劉巖隐解,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诫睬,居然都是意外死亡煞茫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門摄凡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)续徽,“玉大人,你說(shuō)我怎么就攤上這事亲澡∏张ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵床绪,是天一觀的道長(zhǎng)土全。 經(jīng)常有香客問我捎琐,道長(zhǎng),這世上最難降的妖魔是什么裹匙? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任瑞凑,我火速辦了婚禮,結(jié)果婚禮上概页,老公的妹妹穿的比我還像新娘籽御。我一直安慰自己,他們只是感情好惰匙,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布技掏。 她就那樣靜靜地躺著,像睡著了一般项鬼。 火紅的嫁衣襯著肌膚如雪哑梳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天绘盟,我揣著相機(jī)與錄音鸠真,去河邊找鬼。 笑死龄毡,一個(gè)胖子當(dāng)著我的面吹牛吠卷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沦零,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼祭隔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了路操?” 一聲冷哼從身側(cè)響起疾渴,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎屯仗,沒想到半個(gè)月后搞坝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祭钉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞄沙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了己沛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慌核。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖申尼,靈堂內(nèi)的尸體忽然破棺而出垮卓,到底是詐尸還是另有隱情,我是刑警寧澤师幕,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布粟按,位于F島的核電站诬滩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏灭将。R本人自食惡果不足惜疼鸟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庙曙。 院中可真熱鬧空镜,春花似錦、人聲如沸捌朴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砂蔽。三九已至洼怔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間左驾,已是汗流浹背镣隶。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留什荣,地道東北人矾缓。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像稻爬,于是被迫代替她去往敵國(guó)和親嗜闻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容