迭代器模式

java集合类遍历有个常见的问题就是想在Iterator里面去判断删除某个符合条件的元素的时候,如果使用List.remove()的方法就会会报出ConcurrentModificationException。

迭代器模式_第1张图片

解决方法就是用Iterator.remove()方法。

熟悉ArrayList的都知道,它是数组实现的。数组的特性就是长度不可变,如果要改变它就必须new一个新的数组。而且另一个集合类LinkedList底层是链表实现的,所以说如果是删除较多的场景还是推荐使用LinkedList。

OK。进入正题,今天主要是说java这个迭代器模式是怎么实现的。

迭代器模式_第2张图片

ArrayList类根据继承过来的Iterator方法,依赖一个Iterator接口的实现类Iter。然后实现对数组的遍历。

你可能感兴趣的:(迭代器模式)