迭代器的源码,以及两个经典方法
面试题:迭代器对应的关系
用debug查看增强for循环,会发现,执行的下一步还是会进到iterator里
加入字符串,比如我们想想要在代码中遍历到cc后新增一个kk
List list = new ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
Iterator iterator = list.iterator();
while (iterator.hasNext()){
if ("cc".equals(iterator.next())){
list.add("kk");
}
}
控制台发生并发修改异常
出错原因:
迭代器和lsit同时操作集合,
如何解决:事情让一个迭代器做,新迭代器:listiterator,迭代和添加操作都用listiterator来操作
ListIterator iterator = list.listIterator();
while (iterator.hasNext()){
if ("cc".equals(iterator.next())){
iterator.add("kk");
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/doomwatcher/article/details/121566618
内容来源于网络,如有侵权,请联系作者删除!