- import java.util.Iterator;
- /**
- * 简化迭代器原理3 匿名内部类
- * hasNext();
- * next();
- * @author hasee
- *
- */
- public class MyArrayList3 implements java.lang.Iterable<String>{
-
- /**
- * 假设有这么一组数据
- */
- private String[] elementData = {"a","b","c","d","e","f","g"};
-
- /**
- * 迭代器需要遍历的元素
- */
- private int size = elementData.length;
-
- /**
- * 匿名内部类
- * @return
- */
- public Iterator<String> iterator(){
- return new 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(){
- }
- };
- }
-
-
- public static void main(String[] args) {
- MyArrayList3 list = new MyArrayList3();
- Iterator<String> it= list.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
- //要使用增强for循环,必须实现java。lang。Iterable接口,必须重写iterator()方法
- for(String temp:list){
- System.out.println(temp);
- }
- }
- }
复制代码 |
|