文档章节

行为型模式之九:迭代器模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:43
字数 222
阅读 16
收藏 0
点赞 0
评论 0

迭代器模式用于迭代集合对象,他是一个很常用的模式,你可以在之前使用过他,可能你见过像hasNext()和next(),他可能是迭代器模式,比如,你可能迭代访问数据库记录。

迭代器模式类图

迭代器模式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包中,迭代器的接口定义如下: 这些类可以创建迭代器TreeSet#iterator(), HashSet#iterator(),等

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

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
小菜学设计模式——设计模式总结之行为型(1)

1、设计模式总结 设计模式总共23个,但是常用的不到10个,下面就把这23个设计模式进行整理归类,具体如下: 1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型...

learn_more ⋅ 2015/07/09 ⋅ 0

命令模式章列表

章列表:命令模式 tomcat: Java设计模式(六) Command(命令模式)及Tomcat引申 命令模式(Command) 学习目标: 跟王老师学接口(四):面向接口编程:命令模式 命令模式: 码农小汪-设计模式之-命令...

d_watson ⋅ 2016/05/30 ⋅ 0

Java常用设计模式总结

Java常用设计模式总结 : 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、...

xiejunbo ⋅ 2014/12/06 ⋅ 0

一句话总结23种设计模式则

1. 前言 断断续续写了一段时间的设计模式,终于把经典的23种设计模式全写完了。下面对这些设计模式总结一下。 2. 设计原则 设计原则的介绍 : 设计模式的六大原则 即使我们之前没有专门看过这...

四月葡萄 ⋅ 01/05 ⋅ 0

PHP的23种设计模式--php_design_patterns

学习理解设计模式,记录PHP关于23种设计模式的简单Demo。 设计模式分为:创建型模式, 结构型模式,行为型模式等23种设计模式。 一、五种创建型模式如下: 工厂方法模式factorymethod 抽象工...

匿名 ⋅ 2016/04/13 ⋅ 1

PHP之设计模型分类(一)

经典的《设计模式》一书归纳出23种设计模式,本文按《易学设计模式》一书归纳分类如下: 1.创建型模式 前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象...

peasant ⋅ 2016/04/29 ⋅ 0

设计模式-创建-singleton(单例)模式

单例模式是一种创建型的模式,适用于 全局只有一个对象的类, 结构图 只有一个静态 实例变量 和一个静态 函数 外部通过Instance() 静态函数来获取 唯一实例 存在的问题: 线程安全性 可用dou...

梦想游戏人 ⋅ 2016/04/28 ⋅ 0

为什么要开始学习设计模式

Q: 为什么想总结一下每一个设计模式: 写了这么久程序了,不同的设计模式也见过不少,有的还比较了解,有的就几乎不认识, 所以一方面出于提高自己的实际能力,另一方面也是为了在提高自己的...

小翼Eric ⋅ 2015/07/06 ⋅ 0

设计模式--总结

学习设计模式的好处: 学习设计模式最好的方式: 设计模式的本质目的: OO是原则,设计模式是具体方法和工具。 设计模式分类: 创建型模式(五种): 工厂方法模式、抽象工厂模式、单例模式、建造...

有钱有爱 ⋅ 2016/04/09 ⋅ 0

泛型编程与设计新思维

作者:徐景周 转帖:http://www.vckbase.com/document/viewdoc/?id=955 前言 永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解你...

ValueError ⋅ 2011/01/12 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java的Excel导出工具类

首先在POM中引入需要的Jar <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency><dependency><groupId>o......

Kxvz ⋅ 3分钟前 ⋅ 0

Java 3DES加密解密

import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.binary.Base64; //算法代码[java] view plain copy /** * 转换成十六进制字......

说回答 ⋅ 10分钟前 ⋅ 0

php 浮点型计算精度问题

今天碰到一个金额计算的问题,浮点数做差,结果有误(精度有问题)。 $a = floatval('6');$b = floatval('4.99');$m = floatval('1');$r = $a - $b;$r = $r - $m;var_dump($r);//f...

stupidboy ⋅ 32分钟前 ⋅ 0

Mahout推荐算法之SlopOne

一、 算法原理 有别于基于用户的协同过滤和基于item的协同过滤,SlopeOne采用简单的线性模型估计用户对item的评分。如下图,估计UserB对ItemJ的偏好 图(1) 在真实情况下,该方法有如下几个...

xiaomin0322 ⋅ 36分钟前 ⋅ 0

LVM讲解

LVM是什么 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地...

李超小牛子 ⋅ 46分钟前 ⋅ 0

mysql更改密码、连接mysql、mysql常用命令

1. 更改mysql的root账户密码: mysql中root账户和系统root不是一个账户 1.1 更改环境变量PATH,增加mysql绝对路径 由于mysql安装目录为/usr/local/mysql/,所以系统不能直接使用mysql,需把/...

laoba ⋅ 47分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

猫耳m ⋅ 47分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

阿里云云栖社区 ⋅ 50分钟前 ⋅ 0

1.03-Maven中使用ueditor富文本编辑器

起因:在maven仓库未找到百度的ueditor的jar包 操作: 1.下载百度的ueditor的jar包 2.打开命令行,切换到ueditor的下载位置,运行一下命令: mvn install:install-file -Dfile=ueditor-1.1....

静以修身2025 ⋅ 56分钟前 ⋅ 0

几道Spring 面试题

1、BeanFactory 接口和 ApplicationContext 接口有什么区别? ApplicationContext 接口继承BeanFactory接口 Spring核心工厂是BeanFactory BeanFactory采取延迟加载,第一次getBean时才会初始...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部