java.util.ConcurrentModificationException错误的原因及解决方法
来源:互联网 发布:淘宝北京天时恒生假表 编辑:程序博客网 时间:2024/05/02 01:28
母牛生小牛的题。
传统做法是斐波那契数列的做法,直接递归就可以。
这里想到之前做过用java面向对象的方法来做,结果iterator遍历list的时候遇到一个问题:java.util.ConcurrentModificationException
后来找到原因:定义两个类:farm,cow,其中farm中有cows的列表,每次生小牛直接farm.add(),在cows中添加一个,但是没注意到我是在遍历cows时判断是否生小牛,生就添加,不生就下一个母牛。所以,如果有修改的话,修改后的cows与我正在遍历的cows产生不一致,导致“当前修改错误”。
改进方法:产生小牛和遍历cows不放在一起,即不用iterator进行遍历,直接用for对cows的size进行遍历,每个生小牛的过程放在cow类中实现,让他自己growup,farm类只管对其中的所有小牛的每年进行监管,只遍历cows数组而已!不方便之处就在,两个类中的方法来回调用,首先farm中的produce遍历cows,调用cow中的growup方法,growup判断了会生小牛又要调用farm中的add方法做添加。因为produce中,size一开始就确定了cows.size(),所以,size一年一变,不影响产生小牛的过程。iterator不好就在于其只能hasNext()相当于动态的判断size,所以这个地方不好用。
代码与上次做的基本一样,直接看连接就可以:http://blog.csdn.net/gwj879/article/details/6854306
- java.util.ConcurrentModificationException错误的原因及解决方法
- java.util.ConcurrentModificationException原因及解决方法
- java.util.ConcurrentModificationException错误的解决方法
- java.util.ConcurrentModificationException 的解决方法
- java.util.ConcurrentModificationException的解决方法
- java.util.ConcurrentModificationException的解决方法
- java.util.ConcurrentModificationException产生原因及解决办法
- java.util.ConcurrentModificationException原因
- java.util.ConcurrentModificationException原因
- java.util.ConcurrentModificationException原因
- java.util.ConcurrentModificationException错误
- java.util.ConcurrentModificationException错误
- 错误java.util.ConcurrentModificationException
- java.util.ConcurrentModificationException错误
- java.util.ConcurrentModificationException错误
- java.util.ConcurrentModificationException错误
- 关于hashMap的java.util.ConcurrentModificationException解决方法
- java java.util.ConcurrentModificationException 原因
- simple command of linux
- 程序的优化
- 数据结构
- URI(uniformresource identifier)和URL(universal resource Loactor)的区别
- 独有于
- java.util.ConcurrentModificationException错误的原因及解决方法
- bzoj2005
- jQuery中10个非常有用的遍历函数
- 像素的结构
- 【转】android hal 层GPS 研究总结——关于GPS GGA/GSV/RMC 数据的解析
- Eclipse
- 【树状数组】树状数组复习
- kmp浅解
- UML(图形化的语言表示)