浅谈Iterator与ListIterator的异同
程序员文章站
2022-06-21 13:38:10
浅谈Iterator与ListIterator的异同Iterator可以对集合set和list进行遍历,有add和remove方法,没有set方法,也就是说不能对集合元素进行修改,单向遍历。ListIterator只能对集合list及其子类进行遍历,不能遍历set,有add和remove方法,有set方法,可以对元素进行修改,双向遍历。如以下例子,分别使用两种方式进行遍历集合;import java.util.ArrayList;import ......
浅谈Iterator与ListIterator的异同
Iterator | 可以对集合set和list进行遍历,有add和remove方法,没有set方法,也就是说不能对集合元素进行修改,单向遍历。 | |
ListIterator | 只能对集合list及其子类进行遍历,不能遍历set,有add和remove方法,有set方法,可以对元素进行修改,双向遍历 |
如以下例子,分别使用两种方式进行遍历集合;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
System.out.println(list);
//Iterator迭代器可以用于set和list集合只能遍历元素和删除元素;不能修改元素且单向遍历
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()){
if (iterator.next().equals("bbb")){
iterator.remove();
}
System.out.println(list);
}
//ListInterater可以遍历元素,还可以删除和修改元素的值,支持双向遍历
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()){
if (listIterator.next().equals("bbb")){
// listIterator.remove();
listIterator.set("fff");
}
System.out.println(list);
}
}
}
本文地址:https://blog.csdn.net/wdyliuxingfeiyang/article/details/107391726
推荐阅读
-
对比分析php中Cookie与Session的异同
-
浅谈mysql数据库中的换行符与textarea中的换行符
-
浅谈PL/SQL批处理语句:BULK COLLECT与FORALL对优化做出的贡献
-
浅谈django url请求与数据库连接池的共享问题
-
js和php的区别(浅谈php与js语言难易程度)
-
浅谈Oracle数据库的建模与设计
-
浅谈Android onTouchEvent 与 onInterceptTouchEvent的区别详解
-
浅谈mysql 针对单张表的备份与还原
-
浅谈JSP serverlet的区别与联系
-
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念