iterator和listiterator的異同

2021-09-30 14:58:32 字數 814 閱讀 8441

我們在使用list,set的時候,為了實現對其資料的遍歷,我們經常使用到了iterator(跌代器)。使用跌代器,你不需要干涉其遍歷的過程,只需要每次取出乙個你想要的資料進行處理就可以了。

但是在使用的時候也是有不同的。list和set都有iterator()來取得其迭代器。對list來說,你也可以通過listiterator()取得其迭代器,兩種迭代器在有些時候是不能通用的,iterator和listiterator主要區別在以下方面:

1. listiterator有add()方法,可以向list中新增物件,而iterator不能

2. listiterator和iterator都有hasnext()和next()方法,可以實現順序向後遍歷,但是listiterator有hasprevious()和previous()方法,可以實現逆向(順序向前)遍歷。iterator就不可以。

3. listiterator可以定位當前的索引位置,nextindex()和previousindex()可以實現。iterator沒有此功能。

4. 都可實現刪除物件,但是listiterator可以實現物件的修改,set()方法可以實現。iierator僅能遍歷,不能修改。

因為listiterator的這些功能,可以實現對linkedlist等list資料結構的操作。其實,陣列物件也可以用迭代器來實現。

org.apache.commons.collections.iterators.arrayiterator就可以實現此功能。一般情況下,我們使用iterator就可以了,如果你需要進行記錄的前後反覆檢索的話,你就可以使用listiterator來擴充套件你的功能,(有點象jdbc中的滾動結果集)。

Iterator和listIterator的區別

我們在使用list,set的時候,為了實現對其資料的遍歷,我們經常使用到了iterator 迭代器 使用迭代器,你不需要干涉其遍歷的過程,只需要每次取出乙個你想要的資料進行處理就可以了。但是在使用的時候也是有不同的。list和set都有iterator 來取得其迭代器。對list來說,你也可以通過l...

Iterator和listIterator的區別

我們在使用list,set的時候,為了實現對其資料的遍歷,我們經常使用到了iterator 迭代器 使用迭代器,你不需要干涉其遍歷的過程,只需要每次取出乙個你想要的資料進行處理就可以了。但是在使用的時候也是有不同的。list和set都有iterator 來取得其迭代器。對list來說,你也可以通過l...

Iterator和ListIterator的區別

我們在使用list,set的時候,為了實現對其資料的遍歷,我們經常使用到了iterator 跌代器 使用跌代器,你不需要干涉其遍歷的過程,只需要每次取出乙個你想要的資料進行處理就可以了。但是在使用的時候也是有不同的。list和set都有iterator 來取得其迭代器。對list來說,你也可以通過l...