20.迭代器模式
来源:互联网 发布:域名紧急升级 编辑:程序博客网 时间:2024/06/09 20:12
package iterativeModel;import java.util.ArrayList;import java.util.List;import com.sun.xml.internal.fastinfoset.tools.FI_DOM_Or_XML_DOM_SAX_SAXEvent;/* * 迭代模式: * 提供一种方法顺序访问一个聚合对象中各个元素,而不暴露该对象的内部表示 */public class IterativeModel {public static void main(String[] args) {ConcreateAggregate aggregate = new ConcreateAggregate();aggregate.items.add("1111");aggregate.items.add("222");aggregate.items.add("3333");Itetator itetator = aggregate.createItetator();Object o= itetator.first();System.out.println(o);while(!itetator.isDone()){System.out.println(itetator.currntItem());itetator.next();}}}/* * 迭代器的抽象类 */abstract class Itetator{//公共方法 抽象//获取第一个元素public abstract Object first();//获取下一个元素public abstract Object next();//是不是遍历完了public abstract boolean isDone();//获取当前元素public abstract Object currntItem();} /* * 聚集抽象类(比如List) */abstract class Aggregate{//创建迭代器public abstract Itetator createItetator();}/**具体迭代器*/class ConcreateIterator extends Itetator{//具体的聚合类对象private ConcreateAggregate aggregate;//当前下标所在位置private int current = 0;//构造函数public ConcreateIterator(ConcreateAggregate aggregate){this.aggregate = aggregate;}/* * 第一个 */public Object first() {return aggregate.items.get(0);}/* * 下一个 */public Object next() {++current;//如果已经完成遍历if(isDone()){return null;}else{return aggregate.items.get(current);} }/* * 是否遍历完 */public boolean isDone() {return current > aggregate.items.size()-1;}/* * 获取当前元素 */public Object currntItem() {return aggregate.items.get(current);}}/* * 具体聚合类 比如Arraylist */class ConcreateAggregate extends Aggregate{public Itetator createItetator() {return new ConcreateIterator(this);}/* * 模拟聚合对象内部 */public List items = new ArrayList<>();/* * 获取总数 */public int Count(){return this.items.size();}/* * 根据下标获取对象 */public Object get(int index){return items.get(index);}}
阅读全文
0 0
- 20.迭代器模式
- 行为模式-迭代器模式
- 设计模式-迭代器模式
- 设计模式 迭代器模式
- 设计模式-迭代器模式
- 设计模式--迭代器模式
- 【设计模式】迭代器模式
- 设计模式-迭代器模式
- 设计模式- 迭代器模式
- 设计模式 - 迭代器模式
- 设计模式:迭代器模式
- 行为模式-迭代器模式
- 设计模式 - 迭代器模式
- 设计模式-迭代器模式
- 设计模式--迭代器模式
- 设计模式---迭代器模式
- 设计模式---迭代器模式
- 【设计模式】迭代器模式
- Linux日常——shell彩色进度条
- First Position Unique Character
- 暑期项目开发实训 Day7
- Android面试题记录
- 你必须要掌握的测试利器--TestNG
- 20.迭代器模式
- 51Nod-1967-路径定向
- React总结3:ES6下React组件的写法示例代码
- 经典错误一
- 震惊!原来String类是这样的(上)
- Qin Shi Huang's National Road System
- (1) vsftpd 安装
- Java实现-编码方法
- 几个基础算法介绍和实现——冒泡排序