码迷,mamicode.com
首页 > 编程语言 > 详细

迭代器模式(think in java中的设计模式)

时间:2017-06-23 15:45:54      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:override   public   this   null   size   class   return   test   i++   

迭代器模式:用来迭代一个容器集合数组的一种模式。可能大家很多时候是用for循环进行迭代的,但是实际上for循环内部不能使用remove方法,但是迭代器可以,这是因为迭代器内部进行了该方法的逻辑处理。同样我们也可以用到迭代器模式去迭代,他很好的封装了迭代方法。我们还可以从中进行一些特特异的迭代选取功能,比如迭代数字的字符串但是返回尾数为13579的数字for循环内部的东西可以封装在迭代器中。代码如下

public class Test2 {
    @Test
    public void t() {
        CollectionA ca=new CollectionA();
        String[] s={"我","了","个","去"};
        ca.buildCollectionA(s);
        while(ca.hasNext()){
            System.out.println(ca.next());
        }
    }
}
//迭代器接口
interface Iterator{
    //如果有下一个就表示为true,如果没有下一个就表示为false
    public boolean hasNext();
    //取得当前迭代值并且把迭代标记推送到下一个上
    public Object next();
}
//迭代器
class CollectionA implements Iterator {
    //当前下标标记
    private int i=0;
    //迭代的内容
    private String[] obj;
    public void buildCollectionA(String[] s){
        this.obj=s;
    }
    @Override
    public boolean hasNext() {
        if(i>=obj.length){
            return false;
        }
        return true;
    }
    @Override
    public Object next() {
        if(hasNext()){
            return obj[i++];
        }
        return null;
    }
}

 

迭代器模式(think in java中的设计模式)

标签:override   public   this   null   size   class   return   test   i++   

原文地址:http://www.cnblogs.com/blackdeng/p/7069724.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!