A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© My_Android 中级黑马   /  2016-5-28 22:09  /  280 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.Iterator;

  2. /**
  3. * 简化迭代器原理2 加入接口 提供方法
  4. * hasNext();
  5. * next();
  6. * @author hasee
  7. *
  8. */
  9. public class MyArrayList2 {
  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.          * 定义一个私有的内部类 实现Iterator接口
  23.          * @author hasee
  24.          *
  25.          */
  26.         private class MyIt implements 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.          * 提供公共的方法返回一个Iterator接口的实现类
  56.          * @return
  57.          */
  58.         public Iterator<String> iterator(){
  59.                 return new MyIt();
  60.         }
  61.        
  62.        
  63.         public static void main(String[] args) {
  64.                 MyArrayList2 list  = new MyArrayList2();
  65.                 Iterator<String> it= list.iterator();
  66.                 while(it.hasNext()){
  67.                         System.out.println(it.next());
  68.                 }
  69.         }
  70. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马