迭代器
Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍历访问的设计模式。我们可以简单地把迭代理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类。
Iterator iterator = list.
iterator();
while(
iterator.hasNext())
Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 在没有迭代器时我们都是按下面这些方式进行处理的。
int[] arrays =
new int[
10];
for(
int i =
0 ; i < arrays.length ; i++){
int a = arrays[i];
}
List<String> list = new ArrayList
<String>();
for(int i
= 0 ; i
< list.size() ; i
++){
String string = list.get(i);
}
对于这两种方式,我们总是都事先知道集合的内部结构,访问代码和集合本身是紧密耦合的,无法将访问逻辑从集合类和客户端代码中分离出来。同时每一种集合对应一种遍历方法,客户端代码无法复用。
在Java中Iterator为一个接口,它只提供了迭代了基本规则,在JDK中他是这样定义的:对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。其中: Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型 boolean hasNext():判断容器内是否还有可供访问的元素 void remove():删除迭代器刚越过的元素 对于我们而言,我们只一般只需使用next()、hasNext()两个方法即可完成迭代。 如下:
for(Iterator
it = c.iterator();
it.hasNext(); ) {
Object o =
it.next();
}
转载请注明原文地址: https://ju.6miu.com/read-962888.html