MyException - 我的异常网
当前位置:我的异常网» Java相关 » 急java.util.ConcurrentModificationException错误

急java.util.ConcurrentModificationException错误有关问题

www.MyException.Cn  网友分享于:2013-11-11  浏览:740次
急!!!!java.util.ConcurrentModificationException异常问题
我在一个timer的run中调用了一个方法,获取一个collection,但同时还有其他的地方调用了相同的方法,获取collection,程序启动时,当collection中的值大于等于2时,遍历collection时,遍历到第二个值时,就会报java.util.ConcurrentModificationException异常,请问有什么办法可以解决吗?
  将collection强制转换为list不行,强制转换后都不会进入判断循环遍历了,给被调用的方法getAllStoroageSystem()加了同步也不行,还是会报这个异常
  各位高手们,请指教下啊
  Collection storageSystemList = StorageSystemManager.getAllStoroageSystem();

System.out.println("ccc" + storageSystemList.size());

if(storageSystemList != null && storageSystemList.size() > 0){

for(Iterator iter = storageSystemList.iterator(); iter.hasNext();){

StorageSystem storageSystem = (StorageSystem) iter.next();

String sysName = storageSystem.getName();
  }

------解决方案--------------------
不会有性能问题,放心吧,没有了锁,引用的存储,实际上在多对象的时候还会更快

Java code
        List list=new ArrayList();
        for (Iterator iter = storageSystemList.iterator(); iter.hasNext();) {
            list.add(iter.next());
        }
        for(int i=0;i<list.size();i++){
            StorageSystem storageSystem = (StorageSystem)list.get(i);
// 下面接String sysName = storageSystem.getName();那一行

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有