欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅谈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

相关标签: java iterator