设计模式之迭代器模式
来源:互联网 发布:软件接口的分类 编辑:程序博客网 时间:2024/06/05 04:02
主要就是实现开始,下一个,什么时候结束,当前哪一项.
package com.zwy;import java.util.ArrayList;import java.util.Collection;import java.util.List;/*提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露改对象的内部表示. * 注:当你要访问一个对象的聚集对象,而不管这些对象时什么时候都需要遍历的时候,你就应该考虑迭代器模式, * 主要就是为不同的聚集结构提供如开始,下一个,什么时候结束,当前哪一项等统一接口. * */public class IteratorTest {public static void main(String[] args) {concreteArray array = new concreteArray();array.add("zhang san");array.add("li si");Iterator iterator = array.create();while(!iterator.isDone()){System.out.println(iterator.CurrentItem());iterator.Next();}}}abstract interface Iterator {public abstract Object First();public abstract Object Next();public abstract boolean isDone();public abstract Object CurrentItem();}abstract class createIterator {public abstract Iterator create();}class concreteArray extends createIterator {List<String> lists = new ArrayList<String>();@Overridepublic Iterator create() {return new myArray(lists);}public void add(String i) {lists.add(i);}}class myArray implements Iterator {List<?> list ;int cur = -1; public myArray(List<?> list){this.list = list;if(list.size() > 0){cur = 0;}}@Overridepublic Object First() {return list.get(0);}@Overridepublic Object Next() {if(cur < list.size())return list.get(cur++);return null;}@Overridepublic boolean isDone() {if(cur == list.size())return true;return false;}@Overridepublic Object CurrentItem() {if(cur < list.size())return list.get(cur);return null;}}
0 0
- 设计模式之迭代器模式
- 设计模式之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之--迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之-迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- 设计模式 之 迭代器模式
- 设计模式 之 迭代器模式
- 设计模式之迭代器模式
- 设计模式之迭代器模式
- hdoj 2444 The Accomodation of Students 【黑白染色判二分图 + 最大匹配】
- 【JAVA面试题】之一:第几行的obj符合垃圾收集器的收集标准?
- 远程仓库github
- 动态规划概念
- 继承类的运用
- 设计模式之迭代器模式
- 常用的几种VS编程插件
- 想象力
- Android.mk详解
- Python入门
- Timer的schedule()方法
- CentOS6.5 64位安装openvpn
- iframe
- OCP-V13-487