浅谈Iterator与ListIterator的异同

浅谈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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wdyliuxingfeiyang/article/details/107391726
今日推荐