ListIterator

来源:互联网 发布:玩法变了淘宝seo pdf 编辑:程序博客网 时间:2024/06/04 18:05

ListIterator

*属于List接口: (List基本功能)增删改查
*常出现异常:
NoSuchElementException 没有元素可以迭代
ConcurrentModificationException 无法再迭代器中进行修改元素,即遍历过程已明确元素的个数,不可再遍历过程中进行增删改查。在迭代过程,使用了集合的方法对元素进行操作,导致迭代器并不知道集合中的变化,容易引发数据的不确定性。解决方案:在迭代时,不要使用集合的方式操作

import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test {    public static void main(String[] args) {        List list = new ArrayList();        list.add("one");        list.add("two");        list.add("three");        list.add("four");        Iterator it = list.iterator();        while (it.hasNext()) {            // 创建一个Object对象,插入字符串java            Object obj = it.next();            if ("one".equals(obj)) {                list.add("java");            }            System.out.println(it.next());        }    }}

在Iterator继承ListIterator接口,在此接口还有list.listIterator,称列表迭代器,且只有List接口有,好处是:提供了add set next remove方法,还有listIterator(int index)//按索引为起点进行遍历*

import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class Test {    public static void main(String[] args) {        // TODO Auto-generated method stub        List list = new ArrayList();        list.add("one");        list.add("two");        list.add("three");        list.add("four");      ListIterator it = list.listIterator();        while (it.hasNext()) {            // 创建一个Object对象,插入字符串java            Object obj = it.next();            if ("one".equals(obj)) {                // it.add("java");//在"one"后添加                it.set("five");// 替换为five            }        }        System.out.println(list);    }}
0 0
原创粉丝点击