您的位置:首页 > 编程语言 > Java开发

java学习笔记-设计模式17(迭代器模式)

2015-12-16 11:22 891 查看
意图

  提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。

public interface Collection {

public Iterator iterator();

/*取得集合元素*/
public Object get(int i);

/*取得集合大小*/
public int size();
}


  

public interface Iterator {
//前移
public Object previous();

//后移
public Object next();
public boolean hasNext();

//取得第一个元素
public Object first();
}


  

public class MyCollection implements Collection {

public String string[] = {"A","B","C","D","E"};
@Override
public Iterator iterator() {
return new MyIterator(this);
}

@Override
public Object get(int i) {
return string[i];
}

@Override
public int size() {
return string.length;
}
}


  

public class MyIterator implements Iterator {

private Collection collection;
private int pos = -1;

public MyIterator(Collection collection){
this.collection = collection;
}

@Override
public Object previous() {
if(pos > 0){
pos--;
}
return collection.get(pos);
}

@Override
public Object next() {
if(pos<collection.size()-1){
pos++;
}
return collection.get(pos);
}

@Override
public boolean hasNext() {
if(pos<collection.size()-1){
return true;
}else{
return false;
}
}

@Override
public Object first() {
pos = 0;
return collection.get(pos);
}

}


  

public class Test {

public static void main(String[] args) {
Collection collection = new MyCollection();
Iterator it = collection.iterator();

while(it.hasNext()){
System.out.println(it.next());
}
}
}


  

  转自:http://blog.csdn.net/zhangerqing/article/details/8243942
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: