使用for循化和Iterator进行遍历

package exam;
import java.util.*;
public class Employee {
    private String name;
    private int age;
    private double salary;
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public double getSalary() {
        return salary;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }

    public Employee(String name,int age,double salary)
    {
        this.name=name;
        this.age=age;
        this.salary=salary;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Employee emp1=new Employee("小红",28,3000);
        Employee emp2=new Employee("小林",27,4000);
        Employee emp3=new Employee("小明",35,5500);
        /*方法一:使用列表ArrayList配合使用for循化进行遍历
        此处为何不用数组Array([]),而使用列表ArrayList?
         * 精辟阐述:可以将 ArrayList想象成一种“会自动扩增容量的Array”
         * 。Array([]):最高效;但是其容量固定且无法动态改变;
         ArrayList:  容量可动态增长;但牺牲效率;*/
        ArrayList<Employee> a=new <Employee>ArrayList();
        a.add(emp1);
        a.add(emp2);
        a.add(emp3);
        for(int i=0;i<a.size();i++)
            {
            Employee e=a.get(i);     
            //给一个Employee类型接收 ,从a中依次取出一个对象,先用i代替然后把i交付给e,然后依次采用get方法读取e的属性(名字、年龄、薪水)
            System.out.println("员工的姓名:"+e.getName());
            System.out.println("员工的年龄:"+e.getAge());
            System.out.println("员工的薪水:"+e.getSalary());
            }
        /*方法二:使用迭代器进行遍历*/
        Iterator<Employee> it=a.iterator();
    /*关于迭代器Iterator主要有三个方法(原理:当创建完成指向某个集合或者容器的Iterator对象时,
     * 这时的指针其实指向的是第一个元素的上方,即指向一个 空):
     * 1.hasNext():只是判断是否有下一个元素,并不移动指针,类似于一个布尔型的表达式
     * 2.next():当调用next()方法时,向下移动指针,并且返回指针指向的元素,如果无元素则报错
     * 3.remove():删除当前指针指向的元素,一般和next()方法一起使用,作用即删除next()方法返回的元素*/
        while(it.hasNext())
        {
            Employee emp=it.next();
            System.out.println("员工的姓名:"+emp.getName());
            System.out.println("员工的年龄:"+emp.getAge());
            System.out.println("员工的薪水:"+emp.getSalary());
        }
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42155286/article/details/84953054
今日推荐