Java中,Iterator的讲解

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用法,会对你有帮助的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值