我认为 Java 有高效的排序方法,不需要创建排序方法。
如果你有方法 compareTo,你可以做一个 Java 集合(例如一个列表)并使用它附带的方法。
例如:
import java.util.List;
import java.util.ArrayList;
public class Employee implements Comparable<Employee>{
private int id;
private String name;
private String surname;
private float salary;
public Employee(int id, String name, String surname, float salary) {
super();
this.id = id;
this.name = name;
this.surname = surname;
this.salary = salary;
}
// Compare 2 employees by salary
@Override
public int compareTo(Employee employee) {
// Compared by salary
if (this.salary < employee.salary) {
return -1;
}
else if(this.salary > employee.salary){
return 1;
}
return 0;
}
@Override
public String toString() {
return "Employee [name=" + name + ", salary=" + salary + "]";
}
public static void main(String args[]){
Employee employee1 = new Employee(1, "One", "One Surname", 1800);
Employee employee2 = new Employee(2, "Two", "Two Surname", 200);
Employee employee3 = new Employee(3, "Three", "Three Surname", 1500);
Employee employee4 = new Employee(4, "Four", "Four Surname", 800);
List<Employee> list = new ArrayList<>();
list.add(employee1);
list.add(employee2);
list.add(employee3);
list.add(employee4);
System.out.println(list); // Unordered list
list.sort(null);
System.out.println(list); // Ordered list by salary
}
}
你会得到这个输出:
[员工[姓名=一,工资=1800.0],员工[姓名=二,工资=200.0],员工[姓名=三,工资=1500.0],员工[姓名=四,工资=800.0]]
[员工[姓名=二,工资=200.0],员工[姓名=四,工资=800.0],员工[姓名=三,工资=1500.0],员工[姓名=一,工资=1800.0]]