Java设计模式《十六》迭代器模式
来源:互联网 发布:windows仿mac软件 编辑:程序博客网 时间:2024/05/23 19:45
//迭代器 模式 提供一种方法顺序访问一个聚合对象中各个元素 而又不暴露该对象的内部表示//迭代器模式分离了集合对象的遍历行为 抽象出一个迭代器类来负责 这样可以做到不暴露集合的内部结构//又可以让外部代码透明地访问集合内部的数据
//聚集抽象类public abstract class Aggregate{ public abstract int getCount(); public abstract Object get(int index); public abstract void set(int index,Object obj); public abstract void Iterator createIterator(); }//具体聚集类public class ConcreteAggrete extends Aggregate{ private List<Object> items = new ArrayList<Object>(); public Iterator createIterator(){ return new ConcreteIterator(this); } public int getCount(){ return items.size(); } public Object get(int index){ return items.get(index); } public void get set(int index, Object obj){ items.add(index,obj); }}
//迭代器抽象类 用于定义得到开始镀锡得到下一个对象//判断是否得到结尾 当前对象等抽象方法 统一接口public abstract class Iterator{ public abstract Object first(); public abstract Object next(); public abstract boolean next(); public abstract Object currentItem();}//具体迭代器类public class ConcreteIterator extends Iterator{ private ConcreteAggrete aggregate; private int current =0; public ConcreteIterator(ConcreteAggrete aggregate){//初始化 将具体的聚集对象传入 this.aggregate = aggregate; } public Object first(){ return aggregate.get(0); } public Object next(){ Object ret = null; current++; if(current<aggregate.getCount()){ ret =aggregate.get(current); } return ret; } public boolean hasNext(){ return current >= aggregate.getCount()? true : false; } public Object currentItem(){ return aggregate.get(current); }}
/** * 迭代器模式,提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 * * 迭代器模式分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构, * 又可让外部代码透明地访问集合内部的数据。 */public class TestIterator { public static void main(String[] args) { ConcreteAggregate a = new ConcreteAggregate(); a.set(0, "a"); a.set(1, "b"); a.set(2, "c"); Iterator iterator = new ConcreteIterator(a); while(!iterator.hasNext()){ System.out.println(iterator.currentItem()); iterator.next(); } }}
0 0
- Java设计模式《十六》迭代器模式
- 设计模式(十六)----- 迭代器模式(Iterator)----(JAVA版)
- java设计模式十六--Memento(备忘录模式)
- java设计模式十六:--Memento(备忘录模式)
- Java设计模式(十六)----迭代子模式
- JAVA--迭代子模式(Iterator)--设计模式十六
- JAVA设计模式(十六)----迭代模式
- 设计模式C++实现十六:迭代器模式
- 设计模式(十六)迭代器模式
- Python设计模式(十六)【迭代器模式】
- 设计模式—迭代器模式(十六)
- 设计模式(十六)---观察者模式
- Java设计模式之十六(适配器模式)
- Java设计模式十六:组合模式(Composite Pattern)
- JAVA设计模式(十六)——中介者模式
- 浅谈Java设计模式(十六)迭代子模式(Iterator)
- (十六)Java设计模式之模板方法模式
- C++设计模式之十六:Iterator 迭代器
- 用scanner从键盘输入3个整数,输出最大的值.
- Java设计模式《十五》组合模式
- TeX中的引号
- bzoj 1007
- game
- Java设计模式《十六》迭代器模式
- 剑指offer-面试题39-二叉树的深度
- 第八届蓝桥杯纸牌三角形
- 计算机牛人资料大全
- ORACLE PLSQL代码块学习
- 【日常】凸轮大法好
- Java设计模式《十七》单例模式
- Codefroces 410 B.Mike and strings
- binary-tree-zigzag-level-order-traversal