2012-10-03 85 views
0

可能重複:
Difference between Java Enumeration and Iterator如何使用迭代器/枚舉接口在Java中

我正在讀這篇文章 「Difference between Iterator & Enumeration

如果可以使用迭代方法或枚舉方法來執行相同的操作,然後有什麼區別?

我希望在哪裏使用這些接口?

+0

我沒有得到你所需要的不是重複的。被接受的答案似乎清晰完整。你能解釋你的問題嗎? –

+0

hasMoreElement()和hasNext()是否意味着相同? – AppSensei

+0

是的。他們是一樣的。一個會保存一些寶貴的八位字節在你的硬盤上。 –

回答

4

枚舉器是舊版Java 1.0的一部分。迭代器僅出現在Java 1.2中。據我所知,統計員只保留向後兼容性。根據java docs for Enumerator,所有新代碼都應該使用Iterator接口。

注意:此接口的功能由 Iterator接口複製。另外,Iterator添加了一個可選的刪除操作,並且具有較短的方法名稱。新的實現應該 考慮使用Iterator而不是Enumeration。

您應該在循環訪問集合,列表,集合等或實現Iterator接口的東西時使用迭代器。您也可以使用「new」(Java 5)for循環結構遍歷這樣的集合。但請記住,循環時從集合中刪除項目的唯一安全方法是使用Iterator.remove()方法。

3

迭代器是較新的首選方法。它增加了一個刪除功能。

1

枚舉用於獲取列表中的連續元素,並且不能用於以任何方式更改列表,例如通過插入或刪除。但是,迭代器是一個實例化對象,它在列表中維護一個引用,並可以在該引用處插入和刪除元素,並獲取列表中的元素。
如果您只想獲取列表中的元素,枚舉和使用迭代器都可以正常工作。但是,如果您需要插入和刪除的附加功能,我推薦使用迭代器。

+0

我不知道使用迭代器插入任何方法。 – AppSensei

+0

是的,您在Java API方面是正確的,我的錯誤。但是,就實現迭代器而言,通常會創建插入方法。 –

+0

是的,我同意這一點。謝謝。 – AppSensei