当前位置:  编程技术>java/j2ee

Java设计模式之Iterator模式介绍

    来源: 互联网  发布时间:2014-10-27

    本文导语:  1.首先定义一个容器Collection接口. 代码如下:package com.njupt.zhb.learn.iterator;public interface Collection { void add(Object o); int size(); Iterator iterator();}2.定义一个Iterator迭代器的接口 代码如下:package com.njupt.zhb.learn.iterator;public interface Iterator {...

1.首先定义一个容器Collection接口.
代码如下:

package com.njupt.zhb.learn.iterator;
public interface Collection {
 void add(Object o);
 int size();
 Iterator iterator();
}

2.定义一个Iterator迭代器的接口
代码如下:

package com.njupt.zhb.learn.iterator;
public interface Iterator {
 Object next();
 boolean hasNext();
}

3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。
代码如下:

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.Collection;
public class ArrayList implements Collection {
 Object[] objects = new Object[10];
 int index = 0;
 public void add(Object o) {
  if(index == objects.length) {
   Object[] newObjects = new Object[objects.length * 2];
   System.arraycopy(objects, 0, newObjects, 0, 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 = 0;
  @Override
  public boolean hasNext() {
   if(currentIndex >= index) return false;
   else return true;
  }
  @Override
  public Object next() {
   Object o = objects[currentIndex];
   currentIndex ++;
   return o;
  }

 }
}

4.编写测试程序TestMain
代码如下:

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.ArrayList;
public class TestMain {
 public static void main(String[] args) {
  Collection c = new ArrayList();
  for(int i=0; i

    
 
 

您可能感兴趣的文章:

  • java观察者模式概念及相关类介绍
  • Java设计模式之创建者模式简介
  • Java设计模式之适配器模式简介
  • Java设计模式之责任链模式简介
  • Java设计模式之中介者模式(Mediator Pattern)简介
  • 设计模式怎么放到Java类里面???
  • 起个贴子,大家伙来归纳一下Java本身设计中的设计模式
  • 微信公共平台开发模式(JAVA) SDK
  • Actor模式的Java实现 JActor
  • CS模式的集群的JAVA API norbert
  • 求系统安装盘下载地址,有C、JAVA编译器、文本模式即可
  • 什么是模式---《Java与模式》的作者:阎宏博士
  • Java单例模式实例简述
  • 实现b/s模式的ERP系统?应该使用java中的那些技术?
  • Java代码重构的几种模式详解
  • 哪里有java版的设计模式的电子书下载?
  • 哪有java版的设计模式方面的书可以下载呀?材料也可以呀
  • Java模式匹配库 JMatch
  • java设计模式之单例模式学习
  • Java设计模式之装饰者模式详解和代码实例
  • java中多点传送(同一个事件可同时传送给多个监听器对象corejava1例8.6)采用哪种设计模式谢谢
  • Java设计模式之模版方法模式简介
  • java设计模式之实现对象池模式示例分享
  • java设计模式的一个问题谁有兴趣讨论一下。
  • java设计模式之装饰模式详细介绍
  • 代理角色java设计模式之静态代理详细介绍
  • 基于Java的代理设计模式
  • java设计模式之建造者模式学习
  • 设计模式作者John Vlissides:我最常用的是Java
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.text.html类htmldocument.iterator的类成员方法: htmldocument.iterator定义及介绍
  • java使用iterator遍历指定目录示例分享
  • java命名空间java.awt.dnd类draggestureevent的类成员方法: iterator定义及介绍
  • Java源码分析:深入探讨Iterator模式
  • java命名空间java.beans.beancontext类beancontextsupport的类成员方法: iterator定义及介绍
  • java命名空间java.beans.beancontext类beancontextmembershipevent的类成员方法: iterator定义及介绍
  • java命名空间java.util接口collection<e>的类成员方法: iterator定义及介绍
  • java命名空间java.lang接口iterable<t>的类成员方法: iterator定义及介绍
  • java命名空间java.util接口list<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util接口navigableset<e>的类成员方法: iterator定义及介绍
  • java命名空间javax.xml.crypto接口nodesetdata的类成员方法: iterator定义及介绍
  • java命名空间java.util类priorityqueue<e>的类成员方法: iterator定义及介绍
  • java命名空间java.sql类sqlexception的类成员方法: iterator定义及介绍
  • java命名空间java.util接口set<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util接口deque<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent类synchronousqueue<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent类concurrentskiplistset<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent接口blockingdeque<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent类linkedblockingqueue<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent类priorityblockingqueue<e>的类成员方法: iterator定义及介绍
  • java命名空间java.util.concurrent类arrayblockingqueue<e>的类成员方法: iterator定义及介绍
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3