1. 程式人生 > >使用for循化和Iterator進行遍歷

使用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());
        }
    }

}