java遍历List出现java.util.ConcurrentModificationException,我没有remove

tianpeng91 发布于 2013/03/09 14:10
阅读 881
收藏 0
蛋疼啊,我在遍历LIST里面的数据,我没有任何一个地方调用remove方法,只是调用get方法,出这个错误啊,纠结啊。。。。。。请教大神这是为什么?
加载中
0
高得顺
高得顺
你多线程同时遍历了?
tianpeng91
tianpeng91
我有一个基类,然后有10个类继承了他,再运行这10个类,基类是继承了thread,里面有个protected List
0
huan
huan
add?
tianpeng91
tianpeng91
没有add remove等操作,只是遍历
0
tianpeng91
tianpeng91
我有一个基类,然后有10个类继承了他,再运行这10个类,基类是继承了thread
0
高得顺
高得顺

引用来自“高得顺”的答案

你多线程同时遍历了?

这个list就在基类里吧?

试试把list这样定义

List list = Collections.synchronizedList(new ArrayList());

灰花走湿
灰花走湿
猜想可能是某个子类修改了数据,导致迭代器检查失败,检查具体代码,
高得顺
高得顺
回复 @张浩春 : 是不是做了隐式的修改操作,比如sublist,没有修改过list是不会抛这种异常的
tianpeng91
tianpeng91
多线程并没有改变他的值啊
tianpeng91
tianpeng91
暂时程序还在跑。请问,这是什么原因呢?
0
幸福的坚果
幸福的坚果
我昨天遇到了同样的问题,不过我解决了!
幸福的坚果
幸福的坚果
还有就是,遍历器我改用了 Iterator 方法。
幸福的坚果
幸福的坚果
回复 @张浩春 : 我的程序中也没有用到删除、增加方法,只是单纯的查询,比对。但是多线程在处理的时候还是出现异常问题,原因是,我在处理数据的时候,对数据源进行了初始化的操作,其实把数据源初始化放到外层就可以了。修改了之后再测试就没有报错。
tianpeng91
tianpeng91
你是什么情况造成的?
0
幸福的坚果
幸福的坚果
多试一些方法,没那么复杂
返回顶部
顶部