迭代器模式
程序员文章站
2022-05-23 11:37:59
...
摘自 《Java编程思想》第四版
/** * 迭代器模式 * * 利用非静态内部类可以访问外部类的特性 * * 摘自 Java编程思想 P192 */ interface Selector{ public boolean end(); public Object current(); public void next(); } public class Sequence { private Object[] items; private int next = 0; public Sequence(int size){ items = new Object[size]; } public void add(Object x){ if(next < items.length) items[next++] = x; } //内部类 private class SequenceSelector implements Selector { private int i = 0; public boolean end() { return i==items.length; } public Object current() { return items[i]; } public void next() { if(i<items.length) i++; } } public Selector selector() { return new SequenceSelector(); } public static void main(String[] args) { Sequence sequence = new Sequence(10); for (int i = 0; i < 10; i++) { sequence.add(Integer.toString(i)); } Selector selector = sequence.selector(); while(!selector.end()) { System.out.print(selector.current() + " "); selector.next(); } } }
上一篇: 【转载】【异常处理】JAVA异常设计原则
下一篇: oracle创建表空间
推荐阅读
-
208核、6TB内存!阿里云发布全球最强云服务器:挑战摩尔定律极限
-
论述层次模型的概念 论述网状模型的概念 论述数据库系统的三级模式结构什么叫数据于程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据于程序的独立性
-
Fireworks视图模式怎么切换使用?
-
JS 实现计算器功能
-
应用程序单例模式
-
WPS演示使用动作设置结合触发器做到根据情况显示不同课件内容
-
设计模式-工厂方法模式
-
Android Studio笔记之webview ——实现app本身打开网页而不跳转到其他浏览器(内置浏览器)
-
mybatis-plus条件构造器 (QueryWrapper,LambdaQueryWrapper 比较)
-
设计模式之观察者模式(Observer)