簡體   English   中英

對ArrayList使用Iterator而不是ListIterator有什么好處?

[英]What is the benefit of using Iterator instead of ListIterator for ArrayList?

據我了解,ListIterator提供了比Iterator列表更多的功能。 如果是這樣,為什么還要使用Iterator? 是否還有優化或性能因素?

通常,您的代碼對代碼和數據結構的其他部分了解得越少越好。 原因很簡單:這簡化了修改。

實際上, CollectionIterator更強大, ListCollection更強大。

但是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM