A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nanliner 中级黑马   /  2016-5-31 00:27  /  440 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么报并发修改异常?数据结构数组和链表的区别有哪些啊?

2 个回复

倒序浏览
迭代器是依赖于集合存在的,在判断成功后,集合就新添加元素,但是迭代器却不知道, 这样一来就报错了,这个错叫做并发修改异常。
简单来说就是:迭代器遍历元素的时候,通过集合是不能进行元素修订的。
数组查询快,增删慢,链表相反,查询慢,增删快
回复 使用道具 举报
简单来说就是你通过迭代器遍历集合的时候,同时也在往集合中新增元素,这时报的异常就是并发修改异常。

底层是数组结构的:查询快(有索引)    增删慢(增加或是删除指定索引处的元素,元素后方整体会后移或是前移)

底层是链表结构的:  增删快(可以在任意两个元素之间增加元素或是删除元素)     查询慢(无索引,找指定元素的话离开头近就从开头开始找;离末尾近就从末尾开始找;)

备注:数组结构及链表结构的优缺点都是相对的(比方说数组结构相对于链表结构查询快些)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马