织梦 帝国 学校网站,网站备案流程以及所需资料,网络推广方式,中天建设中瑞物资网站概念#xff1a; 迭代器模式#xff1a;Provide a way to access the elements of an aggregarte object sequentiaally with exposing its underlying representation. 提供一种访问容器对象内每个元素的一种方式#xff0c;并且不暴露对象的一些内部细节。实现#xf…概念 迭代器模式Provide a way to access the elements of an aggregarte object sequentiaally with exposing its underlying representation. 提供一种访问容器对象内每个元素的一种方式并且不暴露对象的一些内部细节。实现 迭代器接口定义 public interface Iterator {Object next();Boolean hasNext();
} 容器接口定义 public interface Box {void add(Object object);Iterator createIterator();
} 迭代器实现 public class BoxIterator implements Iterator {private BookBox bookBox;private Integer size;private Integer index;public BoxIterator(BookBox bookBox){this.bookBox bookBox;this.size bookBox.size();this.index 0;}Overridepublic Object next() {if(indexsize){return bookBox.getElement(index);}return null;}Overridepublic Boolean hasNext() {return indexsize;}
} 容器实现 public class BookBox implements Box {private Vector vector new Vector();Overridepublic void add(Object object) {this.vector.add(object);}public Object getElement(Integer index){if(indexvector.size()){return vector.get(index);}return null;}public Integer size(){return vector.size();}Overridepublic Iterator createIterator() {return new BoxIterator(this);}
} 测试及结果 Test
public void iteratorTest() {BookBox bookBox new BookBox();bookBox.add(历史书);bookBox.add(政治书);bookBox.add(语文书);bookBox.add(数学书);bookBox.add(英语书);Iterator iterator bookBox.createIterator();while (iterator.hasNext()) {System.out.println(iterator.next());}
} 历史书 政治书 语文书 数学书 英语书分析 1.简化了对容器的遍历操作直接提供了遍历接口 2.最常用的就是jdk的集合迭代器这个迭代器接口是在1.2版本加入的。转载于:https://www.cnblogs.com/ben-mario/p/11133536.html