标签:
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