黑马程序员技术交流社区

标题: 迭代器简单原理实现<最终版本> [打印本页]

作者: My_Android    时间: 2016-5-28 22:10
标题: 迭代器简单原理实现<最终版本>
  1. import java.util.Iterator;

  2. /**
  3. * 简化迭代器原理3 匿名内部类
  4. * hasNext();
  5. * next();
  6. * @author hasee
  7. *
  8. */
  9. public class MyArrayList3 implements java.lang.Iterable<String>{
  10.        
  11.         /**
  12.          * 假设有这么一组数据
  13.          */
  14.         private String[] elementData = {"a","b","c","d","e","f","g"};
  15.        
  16.         /**
  17.          * 迭代器需要遍历的元素
  18.          */
  19.         private int size = elementData.length;
  20.        
  21.         /**
  22.          * 匿名内部类
  23.          * @return
  24.          */
  25.         public Iterator<String> iterator(){
  26.                 return new Iterator<String>(){
  27.                         /**
  28.                          * 表示迭代器的游标,-1 代表没有走过 ,因为数组下标是从0开始的
  29.                          */
  30.                         private int cursor = -1;  
  31.                        
  32.                         /**
  33.                          * 判断是否存在下一个元素
  34.                          * @return
  35.                          */
  36.                         public boolean hasNext(){       
  37.                                 // cursor+1 < size  即代表有下个一个元素
  38.                                 return cursor+1 < size;
  39.                         }
  40.                        
  41.                         /**
  42.                          * 获取下一个元素
  43.                          */
  44.                         public String next(){
  45.                                 cursor++; //移动一次 游标加+1
  46.                                 return elementData[cursor];
  47.                         }
  48.                         /**
  49.                          * 删除元素 ,没有实现
  50.                          */
  51.                         public void remove(){
  52.                         }
  53.                 };
  54.         }
  55.        
  56.        
  57.         public static void main(String[] args) {
  58.                 MyArrayList3 list  = new MyArrayList3();
  59.                 Iterator<String> it= list.iterator();
  60.                 while(it.hasNext()){
  61.                         System.out.println(it.next());
  62.                 }
  63.                 //要使用增强for循环,必须实现java。lang。Iterable接口,必须重写iterator()方法
  64.                 for(String temp:list){
  65.                         System.out.println(temp);
  66.                 }
  67.         }
  68. }
复制代码

作者: 追风筝的少年    时间: 2016-5-28 23:17
什么贵?看不懂啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2