浅谈Iterator与ListIterator的异同
程序员文章站
2022-03-11 08:50:58
浅谈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
下一篇: Python异常处理机制、调试、测试