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