> 文档中心 > 如何不看这篇文章你可能永远不会知道的排序小技巧

如何不看这篇文章你可能永远不会知道的排序小技巧


大家好,如果这篇文章对你有帮助的话请给支持一下,关注,点赞,收藏

大家都知道在java中有一个Arrays.sort()针对对象数组排序的方法,现在需求来了,我有一个员工类数组,我需要用以上方法根据员工的薪资进行排序,现在我们来看看Arrays.sort()
Arrays的sort()方法承诺,我可以对如何的对象数组进行排序,但前提是你必须实现了Comparable,这里也体现了接口的特征之一,功能
接下来我们来看代码,

//员工类public class Employee implements Comparable {private String name;private double salary;@Overridepublic 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方法@Overridepublic int compareTo(Object o) {Employee emp=(Employee)o;//Double.compare(x, y);当x>y时返回一个整数,<返回负数,=返回0return 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]*/

海量搞笑GIF动态图片