package iterator;
import java.util.Iterator;
/**
* 具体创建迭代器的类 实现了iterator接口
* @author Administrator
*
*/
public class MyIterator<T> implements Iterator<T>{
private T[] list;
private int index = -1;
public MyIterator(T[] list){
this.list=list;
}
@Override
public boolean hasNext() {
index++;
if(index>list.length-1){
return false;
}
return list[index] != null;
}
@Override
public T next() {
return list[index];
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
package iterator;
import java.util.Iterator;
/**
* 创建迭代器的接口
* @author Administrator
*
*/
public interface IteratorCreater {
public Iterator createIterator();
}
package iterator;
/**
* 一个用于迭代的实体类
* @author Administrator
*
*/
public class BlackPeople{
public String name;
public String sex;
public BlackPeople(String name,String sex){
this.name=name;
this.sex=sex;
}
public String toString(){
return "name:"+name+";sex:"+sex;
}
}
package iterator;
import java.util.Iterator;
/**
* 创建迭代器的实现类
* @author Administrator
*
*/
public class ArrayIterator implements IteratorCreater{
private static BlackPeople[] peoplelist = null;
static{
peoplelist=new BlackPeople[]{new BlackPeople("zw","man"),new BlackPeople("zw1","women"),new BlackPeople("zw2","man")};
}
@Override
public Iterator createIterator() {
MyIterator iterator = new MyIterator(peoplelist);
return iterator;
}
}
package iterator;
import java.util.Iterator;
public class IteratorMain {
public static void main(String[] args) {
ArrayIterator arrayIt = new ArrayIterator();
Iterator it=arrayIt.createIterator();
while(it.hasNext()){
BlackPeople p = (BlackPeople)it.next();
System.out.println(p.toString());
}
}
}