日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Enumeration和Iterator的区别

發布時間:2024/1/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Enumeration和Iterator的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
比較:
1.Enumeration 枚舉接口其實是一個比 Iterator 迭代器接口更早期的枚舉集合中的元素的接口。
2.Enumeration 雖然可能過時而被 Iterator 替代,但很多 servlet 還用到,所以還有學習的必要。
3.迭代器允許調用方利用定義良好的語義在迭代期間從迭代器所指向的集合移除元素。
4.方法名稱得到了改進。

枚舉(Enumeration)接口是從以前版本遺留下來。在下面依次介紹Enumeration 和每一種從以前版本遺留下來的類。?
Enumeration接口定義了可以對一個對象的類集中的元素進行枚舉(一次獲得一個)的方法。這個接口盡管沒有被擯棄,但已經被Iterator所替 代。Enumeration對新程序來說是過時的。然而它仍被幾種從以前版本遺留下來的類(例如Vector和Properties)所定義的方法使用, 被幾種其他的API類所使用以及被目前廣泛使用的應用程序所使用。
Enumeration指定下面的兩個方法:?
boolean hasMoreElements()?
Object nextElement()?
執行后,當仍有更多的元素可提取時,hasMoreElements()方法一定返回true。當所有元素都被枚舉了,則返回false。 nextElement()方法將枚舉中的下一個對象做為一個類屬 Object的引用而返回。也就是每次調用nextElement()方法獲得枚舉中的下一個對象。調用例程必須將那個對象置為包含在枚舉內的對象類型。
對于Enumeration可以以Vector為例
Vector里有很多對象,如果你要查看其中的所有對象,一個辦法是用Vector的get(int index)方法,不過這樣效率比較低,另外一個方法是用Vector的elements()方法返回一個Enumeration對象,用 Enumeration的hasMoreElements()方法向下移動并判斷當前位置是否有對象,有則用nextElement()方法返回這個對象
例如, 打印 vector v中的所有對象:?
Enumeration e = v.elements()?
while(e.hasMoreElements() )
{
System.out.println(e.nextElement());
}
另外還有個Iterator接口,和Enumeration是差不多的,不過名稱比較短,通常推薦用 Iterator
對集合進行迭代的迭代器。迭代器代替了 Java Collections Framework 中的 Enumeration。Collections 接口中定義了 iterator 方法,用于返回在此 collection 的元素上進行迭代的迭代器。

Iterator是一個集合的迭代器,通過Iterator訪問接口就就不用關心集合的實現.
Iterator接口中定義了三個方法:
1.hasNext()
是否還有下一個元素.
2.next()
返回下一個元素.
3.remove()
刪除當前元素.
只定義了簡單的三個方法,這里要注意幾點:
1)Iterator和Enumeration的區別
Iterator是用來替代Enumeration的,Enumeration中只定義了兩個方法,不具備刪除功能.

2)調用next()方法后才可以調用remove()方法,而且每次調用next()后最多只能調用一次remove()方法,否則拋出IllegalStateException異常.


對集合操作的工具類的簡單實驗

package com.hbut.test;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;


@SuppressWarnings("unchecked")
public class TestCollections {


public static void main(String[] args) {


List list = new ArrayList<>();
list.add("AA");
list.add("BB");
list.add("CC");
list.add("DD");

List list2=Collections.synchronizedList(list);//把非安全的集合轉為線程安全的

? ?System.out.println("------------增強for循環迭代---------------");
for(Object obj: list2){
System.out.println(obj);
}

Enumeration ea = Collections.enumeration(list2);//類似于Iterator,可以把集合進行迭代
System.out.println("-------Collections.enumeration-----------");
while (ea.hasMoreElements()) {
Object object = (Object) ea.nextElement();
System.out.println(object);

}





}


}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Enumeration和Iterator的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区三区四区精 | 中国av在线播放 | 久久久久无码精品国产sm果冻 | 国产色播 | av片免费在线播放 | 好吊一区二区三区视频 | 成人影视网址 | 久久人人爽人人爽 | 久草国产在线视频 | 成人深夜福利视频 | 国产嫩草影院久久久 | 不卡精品| 美女露胸软件 | 依人成人 | 成人免费精品视频 | 黄色激情视频在线观看 | 骚虎免费视频 | 亚洲激情视频在线播放 | 免费中文av| 97人人模人人爽人人少妇 | 免费不卡毛片 | 三极片黄色 | 久久精选视频 | 日韩欧美亚洲一区二区 | 亚洲xxxx视频 | 国产99久久九九精品无码免费 | 99久久精品国产成人一区二区 | 欧美三级视频在线播放 | 精品一区二区无码 | 色噜噜在线播放 | 都市激情 亚洲 | 苍井空张开腿实干12次 | 视频一区在线观看 | 91久色 | 青娱乐97| 98国产视频 | 国产在线一级片 | 激情久久网 | 欧美网站在线观看 | av免费观看网站 | 胖女人做爰全过程 | 天堂视频一区二区 | 美女穴穴 | 男女在线观看视频 | jizz国产在线观看 | 波多野结衣简介 | 中国美女洗澡免费看网站 | 欧美嫩草影院 | 亚洲AV无码国产精品播放在线 | 三女同志亚洲人狂欢 | 黄a在线| 久久影院国产 | 一区二区高清在线观看 | 色天天色| 高清av网| 老司机福利精品 | 人人爱超碰| 给我看高清的视频在线观看 | 欧美性xxxx在线播放 | 男人的天堂毛片 | 国产精品久久久久久久av福利 | 中文字幕一区二区三区精华液 | 国产大片中文字幕在线观看 | 国产在线拍 | 欧美一级黑人 | 免费网站污 | 国产伦精品一区二区三区四区 | 色婷婷久久综合 | 一区二区乱码 | 国产精品无码影院 | 激情五月色综合国产精品 | 综合影院 | 国产精品熟女久久久久久 | 18成人免费观看网站 | 操操操操操操操操操操 | 视频免费1区二区三区 | 黄色国产在线视频 | www.com久久 | 精品视频免费观看 | www.超碰97| 美女视频污 | 小视频在线| 日韩欧美精品在线观看 | 国产中文字幕免费 | 日韩三级免费看 | 韩国三级丰满少妇高潮 | 中文字幕视频网站 | 国产精品--色哟哟 | 欧美精品综合 | 日本xxxx高清 | 亚洲熟妇毛茸茸 | 中国白嫩丰满人妻videos | 青青艹视频 | 日本亚洲最大的色成网站www | 日韩在线第二页 | 国产在线观看不卡 | 天天躁日日躁aaaaxxxx | 久久靖品| 成年人免费在线视频 |