知识大全 Java设计模式之Iterator模式介绍

Posted

篇首语:知识给世界带来光明,知识给人类增长财富。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java设计模式之Iterator模式介绍相关的知识,希望对你有一定的参考价值。

Java设计模式之Iterator模式介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

所谓Iterator模式 即是Iterator为不同的容器提供一个统一的访问方式 本文以java中的容器为例 模拟Iterator的原理 需要的朋友可以参考下  

   首先定义一个容器Collection接口

复制代码 代码如下: package njupt zhb learn iterator; public interface Collection  void add(Object o);  int size();  Iterator iterator();

   定义一个Iterator迭代器的接口

复制代码 代码如下: package njupt zhb learn iterator; public interface Iterator  Object next();  boolean hasNext();

   定义一个ArrayList 实现Collection接口 并写一个实现了Iterator接口的内部类

复制代码 代码如下: package njupt zhb learn iterator; import njupt zhb learn iterator Collection; public class ArrayList implements Collection  Object[] objects = new Object[ ];  int index = ;  public void add(Object o)   if(index == objects length)    Object[] newObjects = new Object[objects length * ];    System arraycopy(objects newObjects objects length);    objects = newObjects;      objects[index] = o;   index ++;    public int size()   return index;    public Iterator iterator()   return new ArrayListIterator();    private class ArrayListIterator implements Iterator   private int currentIndex = ;   @Override   public boolean hasNext()    if(currentIndex >= index) return false;    else return true;      @Override   public Object next()    Object o = objects[currentIndex];    currentIndex ++;    return o;     

   编写测试程序TestMain

复制代码 代码如下: package njupt zhb learn iterator; import njupt zhb learn iterator ArrayList; public class TestMain  public static void main(String[] args)   Collection c = new ArrayList();   for(int i= ; i< ; i++)    c add("string "+i);      System out println(c size());   Iterator it = c iterator();   while(it hasNext())    Object o = it next();    System out println(o toString() + " ");     

   运行结果

复制代码 代码如下: string string string string string string string string string string string string string string string cha138/Article/program/Java/JSP/201311/20579

相关参考

知识大全 C#中的Iterator迭代器模式

C#中的Iterator迭代器模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!迭代器模式我们在平

知识大全 Java设计模式之Strategy模式

Java设计模式之Strategy模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Strat

知识大全 Java设计模式之Observer模式

Java设计模式之Observer模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Obser

知识大全 Java设计模式之Command 模式

Java设计模式之Command模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Comman

知识大全 Java设计模式之Adapter模式

Java设计模式之Adapter模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通常客户类(

知识大全 Java设计模式之计数代理模式

Java设计模式之计数代理模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  描述    计数代

知识大全 Java设计模式之Decorator模式

Java设计模式之Decorator模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JDK为

知识大全 Java设计模式之迭代器模式

Java设计模式之迭代器模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一引言  迭代这个名词对

知识大全 Java设计模式之Proxy模式

Java设计模式之Proxy模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什么要使用Pr

知识大全 Java设计模式之修饰模式篇

Java设计模式之修饰模式篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近我给女朋友买了一