AbstractList中为了实现顺序访问AbstractList中的元素,而又隐含AbstractList内部结构使用了Iterator的模式。
实现如下:
首先AbstractList类提供了
public Iterator<E> iterator() {
return new Itr();
}访问方法。
然后Iterator的实现类是用一个内部类实现。
private class Itr implements Iterator<E> {
int cursor = 0;
*
*
.......
}
这样内部类就可以直接访问外部类AbstractList的成员变量,而无需要像其他类实现Iterator模式需要把集合类注入到Iterator实现类中。因为该内部类只是希望内部使用,因此将内部类定义成private的。
在iterator()方法中只需要直接创建内部Iterator接口的实现类即可。
实现如下:
首先AbstractList类提供了
public Iterator<E> iterator() {
return new Itr();
}访问方法。
然后Iterator的实现类是用一个内部类实现。
private class Itr implements Iterator<E> {
int cursor = 0;
*
*
.......
}
这样内部类就可以直接访问外部类AbstractList的成员变量,而无需要像其他类实现Iterator模式需要把集合类注入到Iterator实现类中。因为该内部类只是希望内部使用,因此将内部类定义成private的。
在iterator()方法中只需要直接创建内部Iterator接口的实现类即可。