迭代器是一个对象,它能是我们迭代集合中的所以元素
在Java集合类API中,Iterator接口很小,只包含三个方法:
1.boolean hasNext()
如果在这次迭代中还有迭代浏览的的项,则返回true。
2.AnyType next()
返回这个迭代器还未看到的对下一个对象的引用,对象变为可见,则迭代器后移。
3.void remove()
三次浏览的最后一个项,在对next的调用之前,只能用一次这种方法。
每个集合都定义了自己的Iterator接口的实现,对java.util包中的
用户而言,此实现在不可见的类中。
实例:基于继承的迭代器和工厂方法
package com.demo.hephec;
public class MyContainer{
Obeject [] items;
int size;
public Iterator iterator(){
return new MyContainerInterator(this);
}
//othre method not shown.
}
//接口Interator
package com.demo.hephec;
public interface Interator{
boolean hasNext();
Object next();
}
//实现接口的迭代器类
package com.demo.hephec;
class MyContainerInterator implements Interator{
private current int =0;
private MyContainer container;
MyContainerInterator(MyContainer c){
container =c;
}
public boolean hasNext(){
return current<container.size();
}
public Object next(){
container,items[currrent++];
}
}
//main方法
public static void main(String[] args){
MyContainer container=new MyContainer();
container.add("3");
container.add("5");
System.out.println("Container content:"):
Interator itr=container.interator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
Java数据结构学习—Iterator接口