- import java.util.Iterator;
- /**
- * 简化迭代器原理2 加入接口 提供方法
- * hasNext();
- * next();
- * @author hasee
- *
- */
- public class MyArrayList2 {
-
- /**
- * 假设有这么一组数据
- */
- private String[] elementData = {"a","b","c","d","e","f","g"};
-
- /**
- * 迭代器需要遍历的元素
- */
- private int size = elementData.length;
-
- /**
- * 定义一个私有的内部类 实现Iterator接口
- * @author hasee
- *
- */
- private class MyIt implements Iterator<String>{
- /**
- * 表示迭代器的游标,-1 代表没有走过 ,因为数组下标是从0开始的
- */
- private int cursor = -1;
-
- /**
- * 判断是否存在下一个元素
- * @return
- */
- public boolean hasNext(){
- // cursor+1 < size 即代表有下个一个元素
- return cursor+1 < size;
- }
-
- /**
- * 获取下一个元素
- */
- public String next(){
- cursor++; //移动一次 游标加+1
- return elementData[cursor];
- }
- /**
- * 删除元素 ,没有实现
- */
- public void remove(){
- }
- }
- /**
- * 提供公共的方法返回一个Iterator接口的实现类
- * @return
- */
- public Iterator<String> iterator(){
- return new MyIt();
- }
-
-
- public static void main(String[] args) {
- MyArrayList2 list = new MyArrayList2();
- Iterator<String> it= list.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
- }
- }
复制代码 |
|