迭代器原理
向集合中添加元素
ArrayList<String> list = new ArrayList<>();
list.add("test1");
list.add("test2");
list.add("test3");
手写迭代器
public class TestIterator {
private List list;
private int count = 0;
public TestIterator(List list) {
this.list = list;
}
public Object next() {
if (this.count >= list.size()) {
// 抛出异常
// 访问下标越界
throw new TestException("无法继续向下运行");
}
return list.get(count++);
}
/**
* 判读下一个元素是否为数组长度
* */
public boolean hasNext() {
return count != list.size();
}
}
总结
- 定义count属性,每次调用next方法递增一次调用get方法,获取数组元素中的值
- 定义hasNext方法,判断count是否达到数组下标
- 当count超过数组下标后会抛出异常