当前位置: 编程技术>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设计模式之装饰者模式详解和代码实例
代码如下:
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