1. 创建员工类Emp,类中的成员有:(10分)
私有属性: String name, int age, String gender ,double salary
无参构造方法,全参数构造方法
每个属性的set和get方法
重写toString方法,返回属性拼接成的字符串,格式为:"name=张三,age=22,gender=男,salary=5000.0"
重写equals方法,要求若2个员工对象name相同,则对象equals比较的结果为true
实现Comparable接口,定义Emp之间默认的排序规则为:按照年龄降序排列
public class Emp implements Comparable<Emp>{
private String name;
private int age;
private String gender;
private double salary;
public Emp() {
}
public Emp(String name,int age,
String gender,double salary) {
super();
this.name=name;
this.age=age;
this.gender=gender;
this.salary=salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Emp other = (Emp) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return "name=" + name + ", age=" + age + ", gender=" + gender + ", salary=" + salary;
}
//排序规则
@Override
public int compareTo(Emp o) {
return o.age-this.getAge();
}
}
2. 创建SortDemo类,在main方法中完成以下操作:
要求用户从控制台输入若干员工信息,格式为:
tom,22,男,5000.0;amy,33,女,5500;...... 每个用户之间用;隔开,用户的属性之间用,隔开
将每个员工信息解析出来并封装成Emp对象,并存入list集合
使用增强for循环遍历集合,输出每个员工信息
然后对集合中的员工按照年龄进行排序(降序),再次遍历集合,输出结果查看是否排序成功
public class ListSortDemo {
public static void main(String[] args) {
List<Emp> list=new ArrayList<Emp>();
System.out.println("请输入若干员工,用;隔开:");
Scanner scan=new Scanner(System.in);
String line=scan.nextLine();
//解析员工信息
String[] data =line.split(";");
for (String emp : data) {
String[] message=emp.split(",");
Emp emp2=new Emp(message[0],
Integer.parseInt(message[1]),
message[2],Double.parseDouble(message[3]));
list.add(emp2);
}
for (Emp e : list) {
System.out.println(e);
}
Collections.sort(list);
for (Emp e : list) {
System.out.println(e);
}
}
}