【发布时间】:2015-07-23 12:25:11
【问题描述】:
假设我想对Employee 对象的列表进行排序:
Employee emp1 = new Employee("Abhijit", 10);
Employee emp2 = new Employee("Aniket", 5);
Employee emp3 = new Employee("Chirag", 15);
List<Employee> employees = new ArrayList<Employee>();
employees.add(emp1);
employees.add(emp2);
employees.add(emp3);
Collections.sort(employees);
System.out.println("sorted List is: "+employees);
而我的Employee 类实现了Comparable,因此它必须重写compareTo() 方法。
而且我必须在compareTo() 方法中编写我的排序逻辑。
class Employee implements Comparable<Employee>
{
String name;
int empId;
public Employee(String name, int empId)
{
this.name= name;
this.empId = empId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getEmpId()
{
return empId;
}
public void setEmpId(int empId)
{
this.empId = empId;
}
@Override
public int compareTo(Employee e)
{
// TODO Auto-generated method stub
return this.empId > e.empId ? 1 : (this.empId < e.empId ? -1 : 0);
//return 0;
}
@Override
public String toString()
{
return String.valueOf(empId);
}
}
sort()内部如何调用compareTo()方法?
【问题讨论】:
标签: java sorting comparable compareto