package test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
* 迭代器:用來遍歷數(shù)組
* @author 李雙陽
*
*/
public class TestIterator {
public static void main(String[] args) {
//定義一個(gè)列表
Collection c = new ArrayList();
c.add("一");
c.add("二");
c.add("三");
c.add("四");
c.add("五");
/**第一種遍歷方式*/
//第一種便利方式非区,轉(zhuǎn)成數(shù)組
Object[] arr = c.toArray();
// arr[1] = "";
//for循環(huán)遍歷輸出
System.out.println("============for循環(huán)==============");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//增強(qiáng)for循環(huán)
System.out.println("===========增強(qiáng)for循環(huán)(不涉及下標(biāo)后德,只遍歷)============");
for (Object object : arr) {
System.out.println(object);
}
//集合元素copy到數(shù)組中遍歷亏掀,效率低,導(dǎo)致了內(nèi)存浪費(fèi)
/**第二種遍歷方式
* 迭代器:
* 1.Iterator() ------------獲取當(dāng)前集合迭代器
* 2.boolean hasNext()------判斷有沒有下一個(gè)元素
* 3.Object next()----------獲取當(dāng)前迭代器指向的元素孝偎,獲取之后,會(huì)指向下一個(gè)元素
* 4.void remove()----------刪除當(dāng)前迭代器通過next()獲取到的元素
* */
//獲取當(dāng)前集合迭代器
Iterator it = c.iterator();
/*
System.out.println("當(dāng)前元素之后還有元素嗎 砚殿? "+it.hasNext());
System.out.println("當(dāng)前迭代器指向的元素是: "+it.next());//一
System.out.println("當(dāng)前迭代器指向的元素是: "+it.next());//二,因?yàn)闀?huì)獲取當(dāng)前對(duì)象后霸旗,指向下一個(gè)對(duì)象圣絮,最后一個(gè)會(huì)報(bào)錯(cuò)
it.remove();//刪除當(dāng)前對(duì)象--二
// it.remove();//不能連續(xù)刪除兩個(gè),因?yàn)橹赶虮粍h除了灌灾,如果沒有next()上一句也回報(bào)錯(cuò)搓译,所以remove不能單獨(dú)使用
System.out.println(c);//沒有了二
*/
System.out.println("===========迭代器遍歷(Iterator)============");
while(it.hasNext()){
System.out.println(it.next());
it.remove();//可以用來清空整個(gè)集合
}
System.out.println("是否為空: "+c.isEmpty());//true
}
}
迭代器
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞻赶,“玉大人赛糟,你說我怎么就攤上這事≡已罚” “怎么了虑灰?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)痹兜。 經(jīng)常有香客問我,道長(zhǎng)颤诀,這世上最難降的妖魔是什么字旭? 我笑而不...
- 正文 為了忘掉前任对湃,我火速辦了婚禮,結(jié)果婚禮上遗淳,老公的妹妹穿的比我還像新娘拍柒。我一直安慰自己,他們只是感情好屈暗,可當(dāng)我...
- 文/花漫 我一把揭開白布拆讯。 她就那樣靜靜地躺著,像睡著了一般养叛。 火紅的嫁衣襯著肌膚如雪种呐。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼啸箫,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伞芹?” 一聲冷哼從身側(cè)響起忘苛,我...
- 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丑瞧,沒想到半個(gè)月后柑土,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡绊汹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年稽屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片西乖。...
- 正文 年R本政府宣布届案,位于F島的核電站庵楷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尽纽,卻給世界環(huán)境...
- 文/蒙蒙 一咐蚯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弄贿,春花似錦春锋、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至危尿,卻和暖如春呐萌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脚线。 一陣腳步聲響...
- 正文 我出身青樓渠旁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親船逮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子顾腊,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 什么是迭代 Wiki定義:是重復(fù)反饋過程的活動(dòng)酱鸭,其目的是為了接近并到達(dá)所需的目標(biāo)或結(jié)果吗垮。 在程序中,迭代是一種遍歷...
- 迭代是一個(gè)動(dòng)詞赌躺,凡是能用for in 這樣的語句進(jìn)行遍歷的對(duì)象都稱之為可迭代對(duì)象狼牺,而這一個(gè)過程也就稱之為迭代。 可...
- Object.keys()會(huì)返回一個(gè)數(shù)組礼患,包含所有可枚舉屬性是钥;Object.getOwnPropertyNames...
- 集合框架 集合類的由來面向?qū)ο笳Z言對(duì)事物的體現(xiàn)都是以對(duì)象的形式余寥,所以為了方便對(duì)多個(gè)對(duì)象的操作,Java就提供了集合...
- 當(dāng)解釋器想要迭代訪問一個(gè)對(duì)象的時(shí)候,會(huì)調(diào)用iter(x)瓢姻。 iter方法會(huì)檢查對(duì)象是否實(shí)現(xiàn)了__iter__方法祝蝠,...