![](/img/trans.png)
[英]Using a ListIterator, add a "-1" in between 2 even integers in an arraylist
[英]What is the benefit of using Iterator instead of ListIterator for ArrayList?
據我了解,ListIterator提供了比Iterator列表更多的功能。 如果是這樣,為什么還要使用Iterator? 是否還有優化或性能因素?
通常,您的代碼對代碼和數據結構的其他部分了解得越少越好。 原因很簡單:這簡化了修改。
實際上, Collection
比Iterator
更強大, List
比Collection
更強大。
但是Iterator
可以從許多數據結構中獲取,因此,如果您使用的是從(例如)列表中獲取的Iterator,則可以更改代碼並從(例如)數據庫中獲取迭代器,而無需更改與Iterator一起使用的代碼。
使用ListIterator表示以特定順序進行迭代的要求。 使用Iterator表示該順序無關緊要。
通常,我認為使用迭代器會使代碼難以閱讀。 我不知道您的用例,但是在大多數情況下,使用增強的for循環或Java 8流之類的功能方法是有意義的。
如果您需要ListIterator
功能,則可以使用它。 同時,您限制自己只能在該特定位置對List
進行操作。
現在,如果您實現了一些真正的基於List
的操作,則實際上您只想對List
進行操作,因此這對您沒有限制。
但是,如果你並不真正需要的特殊funtionality ListIterator
而是一個Iterator
就足夠了,那么喜歡用普通Iterator
; 這使您不僅可以對List
進行操作,而且還可以對實現Iterable
任何數據結構進行操作,包括各種Collection
。 這使您的代碼更通用,使用更靈活。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.