迭代子模式(Iterator)

核心思想

迭代子模式,又称Cursor模式。

可以顺序地访问聚集中的对象而不必显露聚集的内部表象。

它的作用是访问一个聚集,因此包含两类对象:



聚集对象:聚集对象中提供了一系列的数据集合,它还需要提供访问该集合中元素的方法,一共迭代器对象使用。

集合接口:

public interface Collection {
public Iterator iterator();
public Object get(int i);
public int size();
}

集合类:

public class MyCollection implements Collection{
String str[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","P","S","T","U","V","W","X","Y","Z"};
@Override
public Iterator iterator() {
return new MyIterator(this);
}
@Override
public Object get(int i) {
// TODO Auto-generated method stub
return str[i];
}
@Override
public int size() {
// TODO Auto-generated method stub
return str.length;
}
}


迭代器对象:提供了迭代器对象的功能。

迭代子接口:

public interface Iterator {
public Object previous();
public Object next();
public boolean hasNext();
public Object first();
public boolean isFirst();
public Object last();
public boolean isLsat();
}

迭代子:

迭代器对象:提供了迭代器对象的功能。
public class MyIterator implements Iterator{
Collection collection;
private int pos=-1;

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


@Override
public Object previous() {
// TODO Auto-generated method stub
if(pos>0) pos--;
return collection.get(pos);
}


@Override
public Object next() {
// TODO Auto-generated method stub
if(pos<collection.size()-1){
pos++;
}
return collection.get(pos) ;
}


@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if(pos<collection.size()-1) return true;
else return false;
}


@Override
public Object first() {
// TODO Auto-generated method stub
pos=0;
return collection.get(pos);
}


@Override
public boolean isFirst() {
// TODO Auto-generated method stub
if(pos==0) return true;
else return false;
}


@Override
public Object last() {
// TODO Auto-generated method stub
pos=collection.size()-1;
return collection.get(pos);
}


@Override
public boolean isLsat() {
// TODO Auto-generated method stub
if(pos==collection.size()-1) return true;
else return false;
}

}


测试类:

迭代器对象:提供了迭代器对象的功能。
public class Test {
public static void main(String[] args) {
Collection collection=new MyCollection();
Iterator iterator=collection.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}


迭代子的作用就是用来方便地查询一个集合的数据。凡是有数据聚集的地方都可以使用迭代子模式来进行数据迭代。

但是,迭代子模式给客户端一个聚集被顺序化的感觉,而且它给出的聚集元素没有类型特征。


(个人)

聚集对象和和迭代对象之间,聚集对象调用迭代对象,并且为迭代对象提供访问的函数。迭代对象调用聚集对象,并且为聚集对象提供错做聚集对象的函数。这通过在本类中定义对方的一个对象进行操作。



迭代器对象:提供了迭代器对象的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值