建设壁纸网站的目的,成都网络运营公司,flash新手入门简单动画制作,在网上找做设计是什么网站关于集合元素的remove 重点#xff1a;当集合的结构发生改变时#xff0c;迭代器必须重新获取#xff0c;如果还是用以前老的迭代器#xff0c;会出现异常 java.util.ConcurrentModificationException 重点#xff1a;在迭代集合元素的过程中#xff0c;不能调用集合对象…关于集合元素的remove 重点当集合的结构发生改变时迭代器必须重新获取如果还是用以前老的迭代器会出现异常 java.util.ConcurrentModificationException 重点在迭代集合元素的过程中不能调用集合对象的remove方法删除元素c.remove(o);迭代过程中不能这样 会出现java.util.ConcurrentModificationException 重点在迭代元素的过程中一定要使用迭代器Iterator的remove方法删除元素不要使用集合自带的remove方法删除元素 import java.util.ArrayList; import java.util.Collection import java.util.Iterator; public class CollectionTest06{ public static void main(String[] args){ //创建集合 Collection c new ArrayList(); //注意此时获取的迭代器指向的是那是集合中没有元素状态下的迭代器。 //一定要注意集合结构只要发生改变迭代器必须重新获取
//当集合结构发生了改变迭代器没有重新获取的时候调用next()方法是出现异常 //java.util.ConcurrentModificationException //Integer it c.iterator(); //添加元素 c.add(1); //Integer类型 c.add(2); c.add(3); //获取迭代器 Iterator it c.iterator(); while(it.hasNext()){ //编写代码时next()方法返回值类型必须是Object //Integer iit.next(); Object obj it.next(); System.out.println(obj); } Collection c2 new ArrayList(); c2.add(abc); c2.add(def); c2.add(xyz); Iterator it2 c2.iterator(); while(it2.hasNext()){ Object o it2.next(); //删除元素 //删除元素之后集合的结构发生了变化应该重新去获取迭代器 //但是循环下一次的时候并没有重新获取迭代器所以会出现异常java.util.ConcurrentModificationException //出异常根本原因是集合中元素删除了但是没有更新迭代器迭代器不知道集合变化了) // c2.remove(o); //直接通过集合去删除元素没有通知迭代器导致迭代器的快照和原集合状态不同 //使用迭代器来删除可以吗 //迭代器去删除时会自动更新迭代器并且更新集合删除集合中的元素) it2.remove(); //删除的一定是迭代器指向的当前元素 System.out.println(o); } System.out.println(c2.size()); //0 }
}