标签:
1.迭代器模式(IteratorMode)
定义:迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常。
既有两个对象:一是聚集对象:需要遍历的对象。二是迭代器对象:用于对聚集对象进行遍历访问
关系图:
2.例子
2.1 集合
//集合接口:获取,长度方法
public interface Collection {
//集合长度
int size();
//获取元素
char get(int pos);
//添加元素
void put(char c);
//获取迭代器
Iterator iterator();
}
//集合子类
class MyCollection implements Collection
{
//存放元素集合
StringBuilder sb=new StringBuilder();
//获取长度
@Override
public int size() {
// TODO Auto-generated method stub
return sb.length();
}
//获取元素
@Override
public char get(int pos) {
// TODO Auto-generated method stub
if(pos>=0&&pos<=sb.length()-1)
return sb.charAt(pos);
return (Character) null;
}
//创建一个自己的Iterator并返回
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new MyIterator(this);
}
//添加元素
@Override
public void put(char c) {
// TODO Auto-generated method stub
sb.append(c);
}
}
2.2 迭代器
//迭代器接口
public interface Iterator {
boolean hasNext();//判断是否有下一个字符
char next();//前一个字符
char previous();//后一个字符
char first();//返回第一个字符
}
class MyIterator implements Iterator
{
Collection c=null;
//指针:指向元素的下标
int pos=-1;
public MyIterator(Collection c)
{
this.c=c;
}
@Override
public boolean hasNext() {
// 指针下移,并判断该指针是否存在
pos++;
if(pos<c.size())
return true;
return false;
}
@Override
public char next() {
// TODO Auto-generated method stub
return c.get(pos);
}
@Override
public char previous() {
// TODO Auto-generated method stub
return c.get(pos-1);
}
@Override
public char first() {
// TODO Auto-generated method stub
return c.get(0);
}
}
2.3 测试
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection mycol=new MyCollection();
mycol.put(‘a‘);
mycol.put(‘b‘);
mycol.put(‘c‘);
Iterator it=mycol.iterator();
System.out.print("打印集合:");
while(it.hasNext())
{
char c=it.next();
System.out.print(c);
}
}
}
2.4 运行结果
打印集合:abc
标签:
原文地址:http://www.cnblogs.com/beyondbycyx/p/4441159.html