美文网首页
迭代器模式

迭代器模式

作者: tdeblog | 来源:发表于2016-08-02 20:10 被阅读0次

1.定义#

提供一种方法访问一个容器对象中各个元素,而又不需要暴露该对象的内部细节。大部分语言中已经在常用数据结构类型中实现,不需要自己动手实现。主要用于遍历一个容器对象。实现中迭代器类主要用一个游标在容器元素间前后移动。

2.类图#

类图

3.实现#

3.1抽象迭代器##

public interface Iterator{
  public Object next();
  public boolean hasNext();
  public boolean remove();
}

3.2具体迭代器##

public class ConcreteIterator implements Iterator {
  private ArrayList<T> arrayList = new ArrayList<T>();
  
  public int cursor = 0;
  public ConcreteIterator(ArryaList<T> _arrayList){
    this.arrayList = _arrayList;
  }

  public boolean hasNext(){
    if(this.cursor == this.arrayList.size())
    {
      return false;
    }else{
      return true;
    }
  }

  public Object next(){
    Object result = null;
    if(this.hasNext){
      result = this.arrayList.get(this.cursor++);
    }else{
      result = null;
    }
    return result;
  }

  public boolean remove(){
    this.arryaList.remove(this.cursor--);
  }
}

3.3抽象容器类##

public interface Aggregate{
  public void add(Object object);
  public void remove(Object object);
  public Iterator iterator();
}

3.4具体容器类##

public class ConcreteAggregate implements Aggregate{
  private ArrayList arrayList = new ArrayList();
  public void add(Object object){
    this.arrayList.add(object);
  }
  
  public Iterator iterator(){
    return new ConcreteIterator(this.arrayList);
  }
  public void remove(){}
}

相关文章

网友评论

      本文标题:迭代器模式

      本文链接:https://www.haomeiwen.com/subject/vjxqsttx.html