我有以下任务。我陷入了问题a)。 创建类,描述按小时工资和固定工资的员工。提出您的建议 关于类(Class)之间的关系。实行月平均工资计算办法。为了 小时工资的员工使用以下公式:“平均月薪= 20.8*8*小时费率”,对于员工 固定付款——“平均月薪=固定月付款”。编写注释良好的代码 解决接下来的问题 a) 按月平均工资降序对员工集合进行排序。如果是 同工同酬——名副其实。写下收集到的所有员工的 ID、姓名和月薪。 b) 写出集合中前五名员工的信息(问题 a)。 c) 写入集合中最后三名员工的 ID(问题 b)。 d) 编写代码以从文件中读取和写入这些对象的集合。 e) 编写代码来处理传入文件的不正确格式。
我创建了以下类,但我不知道如何对不同类中的不同对象进行排序。请帮助我!!!
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<EmployeeFixedPayment> coll = new ArrayList<Employee>();
EmployeeHourlyWage a = new EmployeeHourlyWage("Edd", "Goo", 23, 4);
EmployeeHourlyWage b = new EmployeeHourlyWage("Tedd", "Foo", 2, 5);
EmployeeHourlyWage c = new EmployeeHourlyWage("Bob", "Bee", 4, 2);
EmployeeHourlyWage d = new EmployeeHourlyWage("Kate", "See", 2, 5);
EmployeeFixedPayment e = new EmployeeFixedPayment("Lisa", "Lee", 7, 500);
EmployeeFixedPayment f = new EmployeeFixedPayment("Mike", "Ree", 10,
450);
EmployeeFixedPayment g = new EmployeeFixedPayment("Izia", "Kurz", 13,
1000);
EmployeeFixedPayment j = new EmployeeFixedPayment("Aisha", "Moore", 20,
800);
coll.add(a);
coll.add(b);
coll.add(c);
coll.add(d);
coll.add(e);
coll.add(f);
coll.add(g);
coll.add(j);
Collections.sort(coll);
// System.out.println(coll.size());
for (Employee i : coll) {
System.out.print(i.secondName + " ");
}
}
}
public class Employee {
String firstName;
String secondName;
int id;
public Employee(String firstName, String secondName,int id){
this.firstName = firstName;
this.secondName = secondName;
this.id = id;
}
public void printEmployee(){
System.out.println(firstName+" "+secondName+" "+id);
}
public String getSecondName() {
return secondName;
}
public void setSecondName(String secondName) {
this.secondName = secondName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
}
public class EmployeeFixedPayment extends Employee {
double fixedPayment;
public EmployeeFixedPayment(String firstName, String secondName, int id,
double salary) {
super(firstName, secondName, id);
fixedPayment = salary;
}
public double getSalary() {
return fixedPayment;
}
public void setSalary(double salary) {
fixedPayment = salary;
}
}
public class EmployeeHourlyWage extends Employee {
Double hourlyWage;
public EmployeeHourlyWage(String firstName, String secondName, int id, double hourlyRate) {
super(firstName, secondName, id);
hourlyWage = 20.8*8*hourlyRate;
}
public double getWage(){
return hourlyWage;
}
public void setWage(double rate) {
hourlyWage = 20.8*8*rate;
}
}
最佳答案
实现Comparable
Employee
的接口(interface)。这样,当您调用 Collections.sort(coll)
时,它们就会以正确的方式进行排序。
我个人发现CompareToBuilder
类对此有帮助。
关于java - java对不同类的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23957393/