ListIterator中set(),add(),remove(),操作同步问题及源码分析

最近在学习迭代器,其中Iterator在进行迭代时,不允许对生成迭代器的Collection进行并发增加删除操作,否则会抛出线程同步异常。所以我们使用ListIterator,因为ListIterator是带有索引的迭代器,而Collection是不带索引的迭代器。所以ListIterator中有对迭代器的操作方法,修改:set(),增加:add(),删除:remove()。迭代器迭代完毕后,会将元素重新写回到list中,可以通过迭代器完成对list的增删改。

我们先new一个ArrayList()对象,将测试数据 "1"~"9" 添加进去

再定义一个ListIterator迭代器,并且先输出list

然后遍历i,并且在匹配到4的时候,先重新赋值,再移除这个下标时的值,再添加一个"add"

输出如下:

第一栏为原始list,第二栏为set修改值后的list,第三栏为remove()和ad

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值