博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[译]Java 设计模式之迭代器
阅读量:4952 次
发布时间:2019-06-12

本文共 1477 字,大约阅读时间需要 4 分钟。

(文章翻译自)

迭代器模式用于迭代遍历一个集合对象。它是一个经常被用到的模式,你可能以前使用过它。不管在任何时候你看见一些方法像hasNext()和Next(),这个很有可能就是一个迭代器模式。例如,你可以迭代去遍历一个数据库查询记录的列表。

迭代器模式类图

iterator-design-pattern

迭代器模式Java代码

interface IIterator{    public boolean hasNext();    public Object next();} interface IContainer{    public IIterator createIterator();} class RecordCollection implements IContainer{    private String recordArray[] = {"first","second","third","fourth","fifth"};     public IIterator createIterator(){        RecordIterator iterator = new RecordIterator();        return iterator;    }     private class RecordIterator implements IIterator{        private int index;         public boolean hasNext(){            if (index < recordArray.length)                return true;            else                return false;        }         public Object next(){            if (this.hasNext())                return recordArray[index++];            else                return null;        }    }} public class TestIterator {    public static void main(String[] args) {        RecordCollection recordCollection = new RecordCollection();        IIterator iter = recordCollection.createIterator();         while(iter.hasNext()){            System.out.println(iter.next());        }       }}

在JDK中是用迭代器模式

在java.util包中,迭代器接口像下面这样被定义:

public interface Iterator
{ boolean hasNext(); E next(); void remove();}

还有其他的类可以创建一个迭代器,例如 TreeSet#iterator(), HashSet#iterator(), 等等。

转载于:https://www.cnblogs.com/zhangminghui/p/4214368.html

你可能感兴趣的文章
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
转载-FileZilla Server源码分析(1)
查看>>
apache 实现图标缓存客户端
查看>>
MediaWiki左侧导航栏通过特殊页面就可以设置。
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>
springboot+mybatis报错Invalid bound statement (not found)
查看>>
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
P3565 [POI2014]HOT-Hotels
查看>>
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>
prometheus配置
查看>>
定宽320 缩放适配手机屏幕
查看>>
BZOJ 2120 数颜色 【带修改莫队】
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
Codeforces 40 E. Number Table
查看>>
CLR via C#(第3 版)
查看>>
java语法之final
查看>>