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

© 耿渊博 中级黑马   /  2014-3-31 16:33  /  1055 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 耿渊博 于 2014-4-2 21:43 编辑

在迭代的过程中我想修改元素,编译没有报错,但是运行的时候报错,为什么?
  1. package com.Thread;

  2. import java.util.*;

  3. public class ListDemo {

  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6.                
  7.                 ArrayList a1 = new ArrayList();
  8.                
  9.                 //添加元素
  10.                 a1.add("java01");
  11.                 a1.add("java02");
  12.                 a1.add("java03");
  13.                 a1.add("java04");
  14.                
  15.                 //在迭代的过程中添加元素
  16.                
  17.                 Iterator it = a1.iterator();
  18.                
  19.                 while(it.hasNext()){
  20.                         
  21.                         Object obj = it.next();
  22.                         if(obj.equals("java02")){
  23.                                 a1.add("java007");
  24.                         }
  25.                         sop("obj= "+obj);
  26.                 }
  27.                
  28.         }

  29.         
  30.         public static void sop(Object obj){
  31.                 System.out.println(obj);
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

4 个回复

倒序浏览
Iterator  迭代只能remove
listIterator 可以 增删改查  强大无比
回复 使用道具 举报
你好!Iterator 不能修改数据的 不过你换成ArrayList 的ListIterator 这个可以用来迭代并修改数据 你可以试下
回复 使用道具 举报
Iterator  迭代过程中不能对元素进行曾改查,原因是会发生操作冲突,他会不知道自己要操作的下一个元素是什么了只能remove
List特有的迭代器ListIterator 可以 增删改查  
回复 使用道具 举报
迭代器和集合不可以并行操作,在操作迭代器的时候不能操作集合。只能用迭代其中的方法进行操作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马