A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


import java.util.*;
class Test
{
        public static void main(String[] args)
        {
                ArrayList a1 = new ArrayList();

                a1.add("java01");
                a1.add("java02");
                a1.add("java03");
                a1.add("java04");

                ListIterator it = a1.listIterator();
                while(it.hasNext())
                {
                        Object obj = it.next();
                        if(obj.equals("java02"))
                        {
                                //it.add("java09");
                                it.set("java11");
                                it.add("java09");
                        }
                        System.out.println(obj);
                }
                System.out.println(a1);
        }
}
上面代运行可以通过。
但是将红色的代码放开,蓝色的注释掉,就会出现运行异常,为什么不能放到前面添加,然后在对其修改?


QQ五笔截图未命名.jpg (67.29 KB, 下载次数: 34)

QQ五笔截图未命名.jpg

2 个回复

倒序浏览
在调用一次next后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用set
回复 使用道具 举报
其实这个set是一个替代,把这个迭代器里面的元素用指定的元素替代,但是当你第一次调用用的时候,迭代器中没有元素,你却调用set去替代。自然就不行了。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马