【学习笔记】设计模式-迭代器模式
来源:互联网 发布:远走高飞网络歌曲 编辑:程序博客网 时间:2024/06/06 15:52
前言
本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录
迭代器模式
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部表示
需求
请将数组和List的打印方法改用使用迭代器遍历的方法实现
需求分析
数组打印方法
public void printDatas() { for (int i = 0; i < datas.length; i++) { datas[0] = i; System.out.print(ArrayData.class.getSimpleName() + " : " + datas[i]); } }
List打印方法
public void printDatas() { for (int i = 0; i < 10; i++) { System.out.print(ListData.class.getSimpleName() + " : " + datas.get(i)); } }
如何将datas[i]和datas.get(i)完善成类似下面
public void printDatas() { while (hasNext()) { System.out.print("printDatas : " + next()); } }
开发
数组的迭代器实现
public class ArrayDataIterator implements Iterator { Integer[] datas; int position = 0; public void createArrayDataIterator() { for (int i = 0; i < datas.length; i++) { datas[0] = i; } } @Override public boolean hasNext() { if (position >= datas.length || datas[position] == null) { return false; } else { return true; } } @Override public Object next() { return datas[++position]; } public void printDatas() { while (hasNext()) { System.out.print("printDatas : " + next()); } }}
List的迭代器实现
public class ListDataIterator implements Iterator { private ArrayList<Integer> datas = new ArrayList<>(); int position = 0; public void createIterator() { for (int i = 0; i < 10; i++) { datas.add(i); } } @Override public boolean hasNext() { if (position >= datas.size() || datas.get(position) == null) { return false; } else { return true; } } @Override public Object next() { return datas.get(position); } public void printDatas() { while (hasNext()) { System.out.print("printDatas : " + next()); } }}
阅读全文
0 0
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记-迭代器模式 一般
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记--迭代器模式
- 设计模式学习笔记--迭代器模式
- 设计模式学习笔记之迭代器模式
- [学习笔记]设计模式[8]-{迭代器模式}
- 设计模式学习笔记--迭代器模式
- 【学习笔记】设计模式-迭代器模式
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式【学习笔记】
- 设计模式 学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- Fresco网络请求图片和跳转传参
- 第一个MapReduce案例集群模式&本地模式
- Android percent-support-lib百分比布局
- 修改Ubuntu镜像源
- CNN神经网络解释,及MNIST实例详注
- 【学习笔记】设计模式-迭代器模式
- javaHL(JNI) Not Available
- 【数学期望】Gym 101137LLazy Coordinator
- MySQL中concat函数
- 蚁群算法
- Codeforces--477Div.2--B
- es6继承
- Java面向对象三大特征之多态
- lasso 详介