黑马程序员技术交流社区
标题:
集合操作时特别要注意
[打印本页]
作者:
为梦而战
时间:
2011-12-19 17:40
标题:
集合操作时特别要注意
本帖最后由 为梦而战 于 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);
}
}
作者:
窦超
时间:
2011-12-19 17:53
受教了。。。。。。学习一下避免出错
作者:
为梦而战
时间:
2011-12-19 19:43
本帖最后由 为梦而战 于 2011-12-19 19:48 编辑
{:soso_e183:}
窦超 发表于 2011-12-19 17:53
受教了。。。。。。学习一下避免出错
:handshake[互相学习,互相交流,共同进步了!
作者:
王胜利
时间:
2011-12-19 23:23
学习了,互相交流学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2