最近在学习迭代器,其中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