迭代器
迭代器的源码,以及两个经典方法
面试题:迭代器对应的关系
hashnext与next方法的具体实现
增强for循环起始底层也是用迭代器完成的
用debug查看增强for循环,会发现,执行的下一步还是会进到iterator里
listirerator
加入字符串,比如我们想想要在代码中遍历到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"); } }