日期:2014-05-20  浏览次数:20813 次

java arraylist的remove和iterator遍历问题
请教各位了啊 

写了个最简单的arraylist测试

List<String> test = new ArrayList<String>();
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee");

Iterator it = test.iterator();
while (it.hasNext())
{
String tmp = (String)it.next();
System.out.println(tmp);
if(tmp.equals("ddd")) //如果相等需要做处理
{
  //........做处理,做完后需要在在list中再添加一个
test.add("fffff");
  //需要把原来的ddd删除 这个地方报错啊
it.remove();
test.remove(it.hasNext());
}
}
System.out.println("xxxxxxxxxxx");
Iterator it1 = test.iterator();
while (it1.hasNext())
{
System.out.println(it1.next()); //希望再次输出是 aaa bbb ccc eee ffff
}

怎么用list的循环操作

------解决方案--------------------
Java code

List <String> test = new ArrayList <String>();
test.add("aaa");
test.add("bbb");
test.add("ccc");
test.add("ddd");
test.add("eee"); 
for(int i=0;i<test.size();i++){
    String tmp = (String)test.get(i);
    if(tmp.equals("ddd")){
        test.add("fffff");
        test.remove(tmp);
    } 
}
System.out.println(test);