文档章节

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

奋斗到天明
 奋斗到天明
发布于 2015/08/27 17:43
字数 222
阅读 16
收藏 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
昌平
程序员
私信 提问
命令模式章列表

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

d_watson
2016/05/30
2
0
小菜学设计模式——设计模式总结之行为型(1)

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

learn_more
2015/07/09
182
0
一句话总结23种设计模式则

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

四月葡萄
01/05
0
0
PHP的23种设计模式--php_design_patterns

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

匿名
2016/04/13
1K
1
PHP之设计模型分类(一)

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

peasant
2016/04/29
81
0

没有更多内容

加载失败,请刷新页面

加载更多

缓存

并发情况下发生的缓存问题: 缓存一致性: 缓存穿透:是指在高并发场景下,如果某一个key被高并发的访问,缓存没有命中,出于容错性的考虑,会去数据库获取数据,从而导致大量请求访问数据库...

wuyiyi
3分钟前
0
0
eclipse 和idea 快捷键对照

分类 功能点 Eclipse快捷键 IDEA快捷键 搜索 搜索文本 Ctrl + F Ctrl + F Ctrl + R 查找替换 Alt + P/A 逐个/全部替换 Alt + F3 查找当前选中词 继续搜索 Ctrl + K 向前 Ctrl + Shift + K 向...

郭恩洲_OSC博客
3分钟前
0
0
PowerHA IP 替换方式与IP 别名方式的区别

IPAT via replacement (IP替换) The service IP label replaces the boot IP address on the interface. The heartbeat IP alias address remains. IPAT via aliasing (IP别名) The servic......

突突突酱
7分钟前
1
0
Kafka 几个重要的配置总结

注意:配置基于Kafka 0.8.2.1 broker配置 #非负整数,用于唯一标识broker broker.id 0 #kafka持久化数据存储的路径,可以指定多个,以逗号分隔 log.dirs /tmp/kafka-logs #broker接收连接请求...

hblt-j
8分钟前
0
0
开发函数计算的正确姿势 —— 排查超时问题

写不尽的 code,查不完的 bug 通常我们写 bug,哦,不对,写代码时总不会一帆风顺,往往各种 bug 充斥其中,即使测试有较高的代码覆盖率往往也会有漏网之鱼。能写出一些比较隐蔽或者看起来像...

阿里云官方博客
13分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部