大家好,如果这篇文章对你有帮助的话请给支持一下,关注,点赞,收藏
大家都知道在java中有一个Arrays.sort()针对对象数组排序的方法,现在需求来了,我有一个员工类数组,我需要用以上方法根据员工的薪资进行排序,现在我们来看看Arrays.sort()
Arrays的sort()方法承诺,我可以对如何的对象数组进行排序,但前提是你必须实现了Comparable
,这里也体现了接口的特征之一,功能
接下来我们来看代码,
//员工类
public class Employee implements Comparable {
private String name;
private double salary;
@Override
public String toString() {
return "Employee [name=" + name + ", salary=" + salary + "]";
}
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 Employee(String name, double salary) {
super();
this.name = name;
this.salary = salary;
}
//实现了Comparable 接口并实现了compareTo方法
@Override
public int compareTo(Object o) {
Employee emp=(Employee)o;
//Double.compare(x, y);当x>y时返回一个整数,<返回负数,=返回0
return Double.compare(this.salary, emp.salary);
}
}
//测试类,这里的代码就不再多做说明,大家都可以看懂,知道有这个功能就可以了
public class Test {
public static void main(String[] args) {
Employee e1=new Employee("张三",100);
Employee e2=new Employee("李四",300);
Employee e3=new Employee("王五",200);
Employee[] emps={e1,e2,e3};
System.out.println("未排序前:");
for (Employee employee : emps) {
System.out.println(employee.toString());
}
Arrays.sort(emps);
System.out.println("排序后:");
for (Employee employee : emps) {
System.out.println(employee.toString());
}
}
}
/*
结果:
未排序前:
Employee [name=张三, salary=100.0]
Employee [name=李四, salary=300.0]
Employee [name=王五, salary=200.0]
排序后:
Employee [name=张三, salary=100.0]
Employee [name=王五, salary=200.0]
Employee [name=李四, salary=300.0]
*/