2 回答

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
Enumeration和Iterator的主要區(qū)別
(1)java中的集合類都提供了返回Iterator的方法,就是迭代器,它和Enumeration(枚舉)的主要區(qū)別其實(shí)就是Iterator可以刪除元素,但是Enumration卻不能。
(2)還有一點(diǎn)要注意的就是,使 用Iterator來(lái)遍歷集合時(shí),應(yīng)使用Iterator的remove()方法來(lái)刪除集合中的元素,使用集合的remove()方法將拋出ConcurrentModificationException異常。
(3)Enumeration 接口的功能與 Iterator 接口的功能是重復(fù)的。此外,Iterator 接口添加了一個(gè)可選的移除操作,并使用較短的方法名。新的實(shí)現(xiàn)應(yīng)該優(yōu)先考慮使用 Iterator 接口而不是Enumeration 接口。

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
Enumeration速度是Iterator的2倍,同時(shí)占用更少的內(nèi)存。但是,Iterator遠(yuǎn)遠(yuǎn)比Enumeration安全,因?yàn)槠渌€程不能夠修改正在被iterator遍歷的集合里面的對(duì)象。同時(shí),Iterator允許調(diào)用者刪除底層集合里面的元素,這對(duì)Enumeration來(lái)說(shuō)是不可能的。
- 2 回答
- 0 關(guān)注
- 645 瀏覽
添加回答
舉報(bào)