JAVA设计模式之迭代器模式
来源:互联网 发布:淘宝店铺关闭怎么激活 编辑:程序博客网 时间:2024/06/08 19:03
– 自定义迭代器
package com.imust.iterator;/** * 自定义的迭代器接口 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.iterator */public interface MyIterator { void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNext(); //判断是否存在下一个元素 boolean isFirst(); boolean isLast(); Object getCurrentObj();//获取当前游标指向的对象}
自定义的聚合类
package com.imust.iterator;import java.util.ArrayList;import java.util.List;/** * 自定义的聚合类 * @author Zachary (为上帝所心仪的人) * @date 2017年9月8日 * @project shejimoshi * @package com.imust.iterator */public class ConcreateMyAggregate { private List<Object> list = new ArrayList<Object>(); //增加元素 public void addObject(Object obj){ this.list.add(obj); } //移除元素 public void removeObject(Object obj){ this.list.remove(obj); } public List<Object> getList(){ return list; } public void setList(List<Object> list) { this.list = list; } //获得迭代器 public MyIterator createIterator(){ return new ConcreateIterator(); } //使用内部类定义迭代器,可以直接使用外部类的属性 private class ConcreateIterator implements MyIterator{ private int cursor; //定义游标用于记录遍历时的位置 @Override public void first() { cursor = 0; } @Override public void next() { if(cursor < list.size()){ cursor++; } } @Override public boolean hasNext() { if(cursor < list.size()){ return true; } return false; } @Override public boolean isFirst() { return cursor == 0 ? true:false; } @Override public boolean isLast() { return cursor == (list.size() -1)? true :false; } @Override public Object getCurrentObj() { return list.get(cursor); } }}
测试类
package com.imust.iterator;public class Client { public static void main(String[] args) { ConcreateMyAggregate cma = new ConcreateMyAggregate(); cma.addObject("aa"); cma.addObject("bb"); cma.addObject("cc"); MyIterator iter = cma.createIterator(); while(iter.hasNext()){ System.out.println(iter.getCurrentObj()); iter.next(); } }}
阅读全文
0 0
- Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- Java设计模式之迭代器模式
- JAVA-设计模式之迭代器模式
- Java设计模式笔记之迭代器模式
- Java设计模式泛型化之迭代器模式
- 深入浅出Java设计模式之迭代器模式
- eclipse常用快捷键
- 基于canny边缘检测以及基于radon变换的矩形旋转矫正
- PAT 乙级 1032
- LCT模板及详细讲解
- 遗传算法(四)MATLAB GA工具箱使用 附解TSP问题
- JAVA设计模式之迭代器模式
- 面向对象的程序设计——(一)理解对象的属性以及属性的特性
- 无监督学习之K-均值算法分析与MATLAB代码实现
- 测试人员例会会议议题制定规范
- 初学素数筛选打表法
- 方法——猜字母小游戏
- java学习内容
- openwrt中boot_hook函数的一些说明
- UVA10891[Game of Sum] 动态规划