![周末下午5集合輸出_第1頁(yè)](http://file4.renrendoc.com/view/4f6fe87298f0a79bd6c0bb9e03f26bed/4f6fe87298f0a79bd6c0bb9e03f26bed1.gif)
![周末下午5集合輸出_第2頁(yè)](http://file4.renrendoc.com/view/4f6fe87298f0a79bd6c0bb9e03f26bed/4f6fe87298f0a79bd6c0bb9e03f26bed2.gif)
![周末下午5集合輸出_第3頁(yè)](http://file4.renrendoc.com/view/4f6fe87298f0a79bd6c0bb9e03f26bed/4f6fe87298f0a79bd6c0bb9e03f26bed3.gif)
![周末下午5集合輸出_第4頁(yè)](http://file4.renrendoc.com/view/4f6fe87298f0a79bd6c0bb9e03f26bed/4f6fe87298f0a79bd6c0bb9e03f26bed4.gif)
![周末下午5集合輸出_第5頁(yè)](http://file4.renrendoc.com/view/4f6fe87298f0a79bd6c0bb9e03f26bed/4f6fe87298f0a79bd6c0bb9e03f26bed5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
集合的輸出趙翔宇從之前講解的集合操作中我們應(yīng)該可以發(fā)現(xiàn),如果要輸出Collection、Set集合中的內(nèi)容,可以將其轉(zhuǎn)化為對(duì)象數(shù)組輸出,而使用List則可以直接通過(guò)get()方法輸出,但是這些都不是集合的標(biāo)準(zhǔn)輸出方式。在類集中提供了以下四種的常見輸出方式:Iterator:迭代輸出,是使用最多的輸出方式;ListIterator:是Iterator的子接口,專門用于輸出List中的內(nèi)容;Enumeration:是一個(gè)舊的接口,功能與Iterator類似;foreach:JDK1.5之后提供的新功能,可以輸出數(shù)組或集合。注意:4種輸出操作以Iterator為操作標(biāo)準(zhǔn)。以上雖然提供了4種輸出的操作,但是從實(shí)際的使用上來(lái)看,Iterator接口是最常使用的輸出形式。迭代輸出-Iterator1.Iterator接口簡(jiǎn)介集合輸出的標(biāo)準(zhǔn)操作:“在使用集合輸出的時(shí)候必須形成以下的一個(gè)思路:‘只要是碰到了集合輸出的操作,就一定使用Iterator接口’,因?yàn)檫@是最標(biāo)準(zhǔn)的做法”Iterator接口的操作原理:Iterator是專門的迭代輸出接口,所謂的迭代輸出就是將元素一個(gè)個(gè)進(jìn)行判斷,判斷其是否有內(nèi)容,如果有內(nèi)容則把內(nèi)容取出了解了其基本原理之后,下面來(lái)看一下Iterator接口的定義:publicinterfaceIterator<E>Iterator在使用時(shí)也需要指定泛型,當(dāng)然在此處指定的泛型類型需要與集合中的泛型類型一致。此接口定義了3個(gè)方法,如下所示:下面通過(guò)一些實(shí)例講解以上方法的作用,以及使用以上方法時(shí)的注意點(diǎn)。2.Iterator接口的相關(guān)操作實(shí)例操作一:輸出Collection中的全部?jī)?nèi)容Iterator是一個(gè)接口,可以直接使用Collection接口中定義的iterator()方法為其實(shí)例化。既然Collection接口中存在此方法,則List和Set子接口中也可以使用Iterator接口輸出。實(shí)例:進(jìn)行輸出publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");Iterator<String>iter=all.iterator();while(iter.hasNext()){System.out.print(iter.next()+"、");}}}程序輸出結(jié)果:hello、_、world、以上的輸出代碼時(shí)Iterator的標(biāo)準(zhǔn)操作形式,將集合中的內(nèi)容一個(gè)個(gè)的循環(huán)輸出。此種輸出也是必須掌握的形式。實(shí)例操作二:使用Iterator刪除指定的內(nèi)容在Iterator接口中除了可以輸出內(nèi)容之外,還可以刪除當(dāng)前的內(nèi)容,直接使用remove()方法即可。實(shí)例:刪除元素publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");Iterator<String>iter=all.iterator();while(iter.hasNext()){Stringstr=iter.next();if("_".equals(str)){iter.remove();}else{System.out.print(str+"、");}}System.out.println("\n刪除之后的集合"+all);}}程序運(yùn)行結(jié)果:hello、world、刪除之后的集合[hello,world]實(shí)例操作三:迭代輸出時(shí)刪除元素的注意點(diǎn)正常情況下,一個(gè)集合要把內(nèi)容交給Iterator輸出,但是集合操作中也存在一個(gè)remove()方法,如果在使用Iterator輸出時(shí)由集合對(duì)象調(diào)用了自身的刪除方法,則會(huì)出現(xiàn)運(yùn)行時(shí)的錯(cuò)誤。實(shí)例:不正確的刪除方法publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");Iterator<String>iter=all.iterator();while(iter.hasNext()){Stringstr=iter.next();if("_".equals(str)){all.remove(str);}else{System.out.print(str+"、");}}System.out.println("\n刪除之后的集合"+all);}}程序運(yùn)行結(jié)果:hello、刪除之后的集合[hello,world]從程序的運(yùn)行結(jié)果中可以發(fā)現(xiàn),內(nèi)容確實(shí)被刪除了,但是迭代輸出在內(nèi)容刪除之后就中止了。因?yàn)榧媳旧淼膬?nèi)容被破壞,所以迭代將出現(xiàn)錯(cuò)誤,會(huì)停止輸出。雙向迭代輸出-ListIterator1.ListIterator接口簡(jiǎn)介Iterator接口的主要功能是由前向后單向輸出,而此時(shí)如果想實(shí)現(xiàn)由后向前或是由前向后的雙向輸出,則就必須使用Iterator的子接口——ListIterator。ListIterator接口定義如下:publicinterfaceListIterator<E>extendsIterator<E>此接口定義了比Iterator接口中更多的方法,方法定義如下所示:與Iterator接口不同的是,ListIterator接口只能通過(guò)List接口實(shí)例化,即:只能輸出List接口中的內(nèi)容。在List接口中定義了可以為L(zhǎng)istIterator接口的實(shí)例化方法:publicListIterator<E>listIterator()2.ListIterator接口相關(guān)操作實(shí)例操作一:進(jìn)行雙向迭代使用ListIterator接口中的hasPrevious方法由后向前判斷,并使用previous方法取出前一個(gè)元素。實(shí)例:進(jìn)行雙向迭代publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");ListIterator<String>iter=all.listIterator();System.out.print("由前向后輸出:");while(iter.hasNext()){Stringstr=iter.next();System.out.print(str+"、");}System.out.print("\n由后向前輸出:");while(iter.hasPrevious()){Stringstr=iter.previous();System.out.print(str+"、");}}}程序運(yùn)行結(jié)果:由前向后輸出:hello、_、world、由后向前輸出:world、_、hello、以上程序?qū)崿F(xiàn)了雙向的迭代輸出,但是此種輸出方式只有List接口才可以做到。注意:在使用ListIterator接口進(jìn)行雙向輸出時(shí),如果想完成由后向前輸出,則一定要先進(jìn)行由前向后輸出。實(shí)例操作二:增加及替換元素使用add()或set()方法可以增加或替換集合中的元素,但是這樣的操作在開發(fā)中不建議使用。實(shí)例:增加及替換集合中的元素publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");ListIterator<String>iter=all.listIterator();System.out.print("由前向后輸出:");while(iter.hasNext()){Stringstr=iter.next();System.out.print(str+"、");iter.set("ZX-"+str);}System.out.print("\n由后向前輸出:");while(iter.hasPrevious()){Stringstr=iter.previous();System.out.print(str+"、");}}}程序運(yùn)行結(jié)果:由前向后輸出:hello、_、world、由后向前輸出:ZX-world、ZX-_、ZX-hello、在ListIterator接口中使用set()方法修改了每個(gè)元素的內(nèi)容,而且也可以使用ListIterator接口中的add()方法向集合中增加元素。Java新支持-foreach前面已經(jīng)介紹過(guò)foreach的基本用法,使用foreach除了可以完成數(shù)組的輸出,對(duì)于集合也同樣支持。foreach的使用格式for(類對(duì)象:集合){ //集合操作
}實(shí)例:使用foreach輸出publicclassTest{publicstaticvoidmain(String[]args){List<String>all=newArrayList<String>();all.add("hello");all.add("_");all.add("world");for(Stringstring:all){System.out.print(string+"、");}}}程序運(yùn)行結(jié)果:hello、_、world、雖然foreach輸出的功能強(qiáng)大,而且操作的代碼也比較簡(jiǎn)單,但是從實(shí)際的開發(fā)上來(lái)講,還是建議大家使用Iterator接口完成輸出功能。廢棄的接口-EnumerationEnumeration接口是JDK1.0時(shí)就推出的,是最早的迭代輸出接口,最早使用Vector時(shí)就是使用Enumeration接口進(jìn)行輸出的。Enumeration接口定義:publicinterfaceEnumeration<E>雖然Enumeration是一個(gè)舊的類,但是在JDK1.5之后為Enumeration類進(jìn)行了擴(kuò)充,增加了泛型的操作應(yīng)用。主要方法如下所示:以上方法的功能與Iterator相似,只是Iterator中存在刪除數(shù)據(jù)的方法,而此接口并不存在刪除操作,而且可以發(fā)現(xiàn),這里方法名稱的定義要比Iterator中的方法名稱更長(zhǎng)。想要使用此接口輸出只能通過(guò)Vector類,Vector類定義了以下的方法可以為Enumeration接口實(shí)例化:publicEnumeration<E>elements()實(shí)例:使用Enumeration輸出publicclassTest{publicstaticvoidmain(String[]args){Vector<String>all=newVector<String>();all.add("hello");all.add("_");all.add("world");Enumeration
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國(guó)動(dòng)態(tài)圖像分析儀行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)自動(dòng)粉末噴涂系統(tǒng)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球可生物降解微膠囊解決方案行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球生物分析測(cè)試行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)高壓清洗機(jī)噴槍行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 幼兒園科學(xué)討論活動(dòng)概述模塊二幼兒園科學(xué)探究活動(dòng)講解
- 必殺08 第九、十單元 西半球的國(guó)家和極地地區(qū)(綜合題20題)(解析版)
- 猜想02 重難點(diǎn)(70道題25個(gè)重難點(diǎn))【考題猜想】(解析版)
- 2025我國(guó)合同法對(duì)合同效力的規(guī)定
- 合法的房屋租賃合同
- 化學(xué)元素周期表注音版
- T-GDASE 0042-2024 固定式液壓升降裝置安全技術(shù)規(guī)范
- 消防維保服務(wù)方案及實(shí)施細(xì)則
- 保衛(wèi)管理員培訓(xùn)課件
- 香港朗文4B單詞及句子
- 數(shù)據(jù)中心運(yùn)維方案
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第五章運(yùn)動(dòng)中的中樞控制
- 財(cái)務(wù)部規(guī)范化管理 流程圖
- 蘇教版2023年小學(xué)四年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃+教學(xué)進(jìn)度表
- 斷絕關(guān)系協(xié)議書范文參考(5篇)
- 最新變態(tài)心理學(xué)課件
評(píng)論
0/150
提交評(píng)論