文档章节

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

奋斗到天明
 奋斗到天明
发布于 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
昌平
程序员
小菜学设计模式——设计模式总结之行为型(1)

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

learn_more
2015/07/09
182
0
命令模式章列表

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

d_watson
2016/05/30
2
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

没有更多内容

加载失败,请刷新页面

加载更多

Kafka如何做到1秒处理1500万条消息?

Apache Kafka 是一款流行的分布式数据流平台,它已经广泛地被诸如 New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统...

架构师springboot
7分钟前
0
0
如何清理Nexus Repository Manager

随着开发运维一体化的理念逐渐深入,持续集成流水线已经成为软件开发的标配。持续集成通过高度自动化的方式,使得构建发布变得非常简单,构建发布次数随之变的越来越多。我们在享受高频次的构...

JasonSE
19分钟前
0
0
聊聊storm的ack机制

序 本文主要研究一下storm的ack机制 实例 SentenceSpout public class AckSentenceSpout extends BaseRichSpout { private ConcurrentHashMap<UUID, Values> pending; private Spo......

go4it
29分钟前
0
0
《netty入门与实战》笔记-05:netty内置的channelHandler

Netty 内置了很多开箱即用的 ChannelHandler。下面,我们通过学习 Netty 内置的 ChannelHandler 来逐步构建我们的 pipeline。 ChannelInboundHandlerAdapter 与 ChannelOutboundHandlerAdap...

Funcy1122
49分钟前
3
0
帧动画(wifi信号动态动画)

准备六张wifi不同信号强度的素材图片,复制到drawable目录中 在drawable目录中新建frame文件,并编写代码 <animation-list xmlns:android="http://schemas.android.com/apk/res/android"> ...

lanyu96
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部