基本思路
- Iterator接口中有兩個(gè)方法
public interface Iterator {
Object next();
boolean hasNext();
}
- Collection接口
定義一個(gè)返回類型為Iterator的方法
public interface collection {
public void add(Object o);
public int size();
Iterator iterator();
}
- 以ArrayList為例
繼承Collection接口,并實(shí)現(xiàn)iterator
方法硫痰。
返回一個(gè)Iterator
類型的對(duì)象
// 返回的內(nèi)容一定是實(shí)現(xiàn)了Iterator接口的類的對(duì)象衩婚,這個(gè)類具體是什么名字并不重要。
public Iterator iterator() {
return new ArrayListIterator();
}
該Iterator
類型的對(duì)象效斑,實(shí)現(xiàn)了Iterator
的接口非春,并且重寫相應(yīng)的方法。
public Iterator iterator() {
return new ArrayListIterator();
}
// 使用內(nèi)部類的形式實(shí)現(xiàn)缓屠,
private class ArrayListIterator implements Iterator {
private int current = 0;
@Override
public Object next() {
// TODO Auto-generated method stub
Object o = objects[current];
current++;
return o;
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if (current >= index) {
return false;
} else {
return true;
}
}
}