¿Cómo el método sort () de la clase Collection llama a compareTo () de Comparable?

Supongamos que quiero ordenar una lista deEmployee objetos:

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);

Y miEmployee implementos de claseComparable, por lo tanto, debe anular elcompareTo() método.
Y tengo que escribir mi lógica de clasificación en elcompareTo() método.

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);
    }
}

Cómosort() llama acompareTo() método internamente?

Respuestas a la pregunta(1)

Su respuesta a la pregunta