Java中,Iterator的讲解
Iterator的用途:
第一,Iterator的定义,就是提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。
第二,Iterator模式可以用来遍历集合类的标准访问方法,它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
第三,Iterator模式总是用同一种逻辑来遍历集合
for(Iterator it =c.iterator();it.hasNext(); …)
{
……
}
第四,Iterator模式有三个功能
boolean hasNext() //是不是有下一个元素
Object next(); //输入下一个元素
void remove(); //删除元素
下面看一个Iterator的Java程序
建立两个文件Person.java和Operation.java
Person.java文件
package com.Iterator1.java;
import java.util.*;
//import javax.xml.crypto.Data;
//import javax.xml.crypto.Data;
public class Person
{
public Person(String name,char sex,int age,String birth,String addr,String tel)
{
this.name=name;
this.sex=sex;
this.age=age;
this.addr=addr;
this.birth=birth;
this.tel=tel;
}
public void setName(String name)
{
this.name=name;
}
public void setSex(char sex)
{
this.sex=sex;
}
public void setAge(int age)
{
this.age=age;
}
public void setBirth(String birth)
{
this.birth=birth;
}
public void setAddr(String addr)
{
this.addr=addr;
}
public void setTel(String tel)
{
this.tel=tel;
}
public String getName()
{
return name;
}
public char getSex()
{
return sex;
}
public int getAge()
{
return age;
}
public String getBirth()
{
return birth;
}
public String getAddr()
{
return addr;
}
public String getTel()
{
return tel;
}
public String toString()
{
return "Name: "+name+" Sex:"+sex+" Age: "+age+" Birth:"+birth+" Address: "+addr+" Telephone: "+tel;
}
private String name;
private char sex;
private int age;
private String birth;
private String addr;
private String tel;
//private int age;
}
Operation.java文件:
package com.Iterator1.java;
import java.util.*;
public class Operation {
public static void main(String [] agrs)
{
Vector c =new Vector();
//Iterator it=c.iterator();
c.addElement(new Person("张三",'男',20,"1991-8-22","福州","6820573"));
c.addElement(new Person("李四",'女',21,"1992-10-20","上海","6820572"));
c.addElement(new Person("王五",'男',22,"1993-1-1","北京","6820574"));
c.addElement(new Person("赵六",'女',24,"1994-1-9","成都","6820576"));
c.addElement(new Person("一一",'男',25,"1993-2-10","合肥","68205975"));
c.addElement(new Person("二二",'女',23,"1992-10-8","青岛","6820570"));
c.addElement(new Person("三三",'女',25,"1994-10-8","黑龙江","6820578"));
Iterator it=c.iterator();
System.out.println("修改之前的学生信息表如下: ");
while(it.hasNext()) //判断是否有下一个元素
{
Person p=(Person)it.next();
System.out.println(p.toString());
if(p.getName().equals("王五"))
{
p.setAge(p.getAge()+8);
}
else if(p.getName().equals("李四"))
{
it.remove();
}
else if(p.getAge()==22)
{
it.remove();
}
}
System.out.println("修改之后的学生信息表如下: ");
System.out.println("--------------------------------------------------------------------------");
for(int i=0;i<c.size();i++)
{
System.out.println(c.elementAt(i));
}
System.out.println("-------------------------------------------------------------------------");
}
}
代码很好理解,借助这个代码来理解Iterator用法,会对你有帮助的。