//Worker类
package org.jsoft.homework;
public class Worker {
private int age;
private String name;
private double salary;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Worker(){
}public Worker(String name,int age,double salary){
this.name=name;
this.age=age;
this.salary=salary;
}
public void work(){
System.out.println(name+"work");
}
@Override
public String toString() {//重写String 类的toString方法
// TODO Auto-generated method stub
return name+ " " +age+" "+ salary;
}
@Override
public boolean equals(Object arg0) {//重写Object类中的equals方法。
// TODO Auto-generated method stub
if(arg0 ==null){//判断是否为空,如果为空,则返回false
return false;
}
if( arg0 instanceof Worker){//判断 arg0是否 是Worker类型
Worker obj=(Worker)arg0;//并将arg0转换成Worker类型,以便调用Worker的属性和方法
if(obj.name.equals(this.name)&&obj.age==this.age&&obj.salary==this.salary)
{//判断各种属性是否相等
return true;
}
}
return false;
}
@Override
public int hashCode() {//重写hashCode方法
// TODO Auto-generated method stub
return 0;//如果两个元素的各种属性相同,则他们指向一个地址。
}
}
//TestList类
package org.jsoft.homework;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class TestList {
public static void main(String[] args) {
Worker p1=new Worker("zhang3",18,3000);
Worker p2=new Worker("li4",25,3500);
Worker p3=new Worker("wang5",22,3200);
Worker p4=new Worker("zhao6",24,3300);
List l=new ArrayList();
l.add(p1);
l.add(p2);
l.add(p3);
l.add(1,p4);//在第二个元素前添加一个元素
l.remove(3);//移除集合中第4个元素
for(int i=0;i<l.size();i++){//for 循环遍历并打印list所有员工的信息
System.out.println(l.get(i));
}
System.out.println("迭代 list中的元素 并调用work方法");
Iterator it=l.iterator();
while(it.hasNext()){//如果迭代器内还有元素则返回值为true,继续循环
Object obj =it.next();//返回迭代的下一个元素
Worker w=(Worker) obj;//将Object类型转换成Worker类型,以便调用Worker中的属性和方法
w.work();//调用Worker中的 work 方法
}
}
}
结果: