先来一段代码:
ArrayList a = new ArrayList();
a.add(new Integer(3));
Iterator it = a.iterator();
a.add(new String("hellow"));
while(it.hasNext())
{
System.out.println(it.next());
}
咋一看,这段代码貌似没有问题。可是运行之后却会报异常。
原因在哪里呢?
事实上,在编程过程中,容易出现先指定迭代器iterator,然后对链表增加节点,这样做是错误的。
原因是:由于在进行遍历集合时不能改变集合的长度,如果采用集合自带的API比如add、remove等方法对集合进行相关操作时候就会抛出异常。
版权声明:本文为博主原创文章,未经博主允许不得转载。
本文揭示了Java中集合操作与迭代器使用的常见误区,重点解释了不能在遍历时修改集合长度的原因,并提供了避免此类错误的方法。
517

被折叠的 条评论
为什么被折叠?



