提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
实现Iterator接口
public class Iterator_Main {
public static void main(String[] args) {
List<Integer> integerList = new ArrayList(){{add(1);add(2);}};
MyArr<Integer> arr = new MyArr<>(integerList);
Iterator<Integer> iter = arr.getIter();
while (true) {
if (iter.hasNext()) {
System.out.println(iter.next());
} else {
break;
}
}
}
}
class MyArr<T> {
private T[] arrs;
MyArr(T[] t) {
this.arrs = t;
}
MyArr(List<T> list) {
if (!CollectionUtils.isEmpty(list))
arrs = (T[]) list.toArray();
}
public Iterator<T> getIter() {return new Iter(); }
private class Iter implements Iterator<T> {
int cursor;
@Override
public boolean hasNext() {return cursor <= arrs.length - 1;}
@Override
public T next() {
T arr = arrs[cursor];
cursor++;
return arr;
}
}
}