本帖最后由 为梦而战 于 2011-12-19 19:47 编辑
操作集合的方式有两种:
一:用集合的方法操作元素
二:用迭代器的方法操作元素
当这两种方法操作同一集合中的元素时,所以当迭代器正在操作这一集合中的元素时,如果又用了集合的方法来操作这个集合的时候,就有可能产生安全隐患------并发修改异常(ConcurrentModificationException)。
所以注意:我们不能对同一组元素进行多种同时操作,即不能既用集合方式,又用迭代器方式对同一组元素进行操作。
错误实例:class List1{
public static void main(String[] args)
{
ArrayList t1=new ArrayList();
t1.add("java01");
t1.add("java02");
t1.add("java03");
t1.a dd("java04");
t1.add("java05");
sop(t1);
Iterator it=t1.iterator();
while(it.hasNext())
{
Object obj=it.next();
if(obj.equals("java02"))
t1.add("java06");/*这里在迭代器中又用了集合的方式对同一组元素进行了操作,
这就有可能产生并发修改异常*/
sop("obj="+obj);
}
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
|