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