黑马程序员技术交流社区

标题: 为什么会报错 [打印本页]

作者: 李思静    时间: 2012-7-14 10:01
标题: 为什么会报错
  1. import java.util.*;

  2. class Hello{
  3.         public static ArrayList al;
  4.        
  5.         public static void main(String[] args) {
  6.                 al=new ArrayList();
  7.                 al.add("01");
  8.                 al.add("02");
  9.                 al.add("03");
  10.                 Iterator it=al.iterator();
  11.                 while(it.hasNext()){
  12.                         Object obj=(Object)it.next();
  13.                 if(obj.equals("01")){
  14.                         it.remove();
  15.                 }
  16.                 System.out.println(it.next());
  17.                 }
  18.                        
  19.         }
  20.                        
  21.        


  22. }
复制代码
02
Exception in thread "main" java.util.NoSuchElementException
        at java.util.ArrayList$Itr.next(ArrayList.java:794)
        at com.sijing.Hello.main(Hello.java:19)

作者: 周恺    时间: 2012-7-14 10:13

        一定要记得,只要出现了next()方法,就等于执行了一次指针后移动作,无论它出现在什么地方.

作者: 韦念欣    时间: 2012-7-14 10:14
在迭代过程中,尽量不要删除元素,否则很有可能会发生java.util.NoSuchElementException异常。
作者: 李思静    时间: 2012-7-14 10:19
韦念欣 发表于 2012-7-14 10:14
在迭代过程中,尽量不要删除元素,否则很有可能会发生java.util.NoSuchElementException异常。 ...

怎么改成已经解决?
作者: 周恺    时间: 2012-7-15 03:01
帅李 发表于 2012-7-14 10:19
怎么改成已经解决?

http://bbs.itheima.com/thread-18497-1-1.html
这里有方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2