黑马程序员技术交流社区
标题:
【石家庄校区】并发修改异常
[打印本页]
作者:
等你在城外
时间:
2017-11-26 18:19
标题:
【石家庄校区】并发修改异常
本帖最后由 小石姐姐 于 2017-11-29 20:33 编辑
什么是并发?
并行发生, 即同时发生
修改: 指的是会改变集合长度的操作
增加元素
删除元素
清空元素
list的set(int index, Object o)方法可以修改集合中某个索引处的元素值, 但并不会改变集合的长度, 所以不会发生并发修改异常
为什么会产生并发修改异常?
ConcurrentModificationException, 迭代器依赖于集合, 相当于集合的一个副本, 当迭代器在操作时, 如果发现迭代器的副本和集合不一样, 则抛出并发修改异常
如何避免并发修改异常:
方式1: 不使用迭代器
方式2: 在使用迭代器遍历时, 使用迭代器的方法修改
添加元素:
List接口中的ListIterator listIterator()获取用于List的迭代器, 然后调用ListIterator的add()方法
删除元素: remove()
List接口
是Collection的子接口
叫做列表, 元素存取有序, 元素可以重复, 有索引
作者:
小石姐姐
时间:
2017-11-29 20:35
棒棒的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2