Hola a todos. Aquí os envio mi código de 4 clases para el ejercicio CU00918C del curso avanzado de Java.
GRACIAS. Un saludo.
public class Estudiante implements Comparable<Estudiante>{
    private String nombre;
    private int edad;
    private int curso;
    
    public Estudiante(){
        nombre="";
        edad=0;
        curso=0;
    }
    
    public Estudiante(String nombre,int edad,int curso){
        this.nombre=nombre;
        this.edad=edad;
        this.curso=curso;
    }
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public int getEdad() {
        return edad;
    }
    public void setEdad(int edad) {
        this.edad = edad;
    }
    public int getCurso() {
        return curso;
    }
    public void setCurso(int curso) {
        this.curso = curso;
    }
    
    @Override
    public String toString(){
        return "\nNombre: "+nombre+", "+edad+" años, curso "+curso+". ";
    }
    
   
    @Override
    public int compareTo(Estudiante o) {
        return this.nombre.compareTo(o.nombre);
    }
}
import java.util.Comparator;
public class OrdenarPorCurso implements Comparator<Estudiante>{
    @Override
    public int compare(Estudiante o1, Estudiante o2) {
        return o1.getCurso()-o2.getCurso();
    }
    
}
import java.util.Comparator;
public class OrdenarPorEdad implements Comparator<Estudiante>{
    @Override
    public int compare(Estudiante o1, Estudiante o2) {
       return o1.getEdad()-o2.getEdad();
    }
   
}
import java.util.ArrayList;
import java.util.Collections;
public class Principal {
    public static void main(String[] args){
        ArrayList<Estudiante> listaEstudiantes=new ArrayList<Estudiante>();
        listaEstudiantes.add(new Estudiante("Joaquín",18,4));
        listaEstudiantes.add(new Estudiante("Juan",15,1));
        listaEstudiantes.add(new Estudiante("Vicente",18,5));
        listaEstudiantes.add(new Estudiante("Laura",19,5));
        listaEstudiantes.add(new Estudiante("María",17,3));
        
        Estudiante a=new Estudiante();
        
        System.out.println("Lista de estudiantes sin ordenar: "+listaEstudiantes.toString());
        
        Collections.sort(listaEstudiantes);
        System.out.print("Lista estudiantes ordenados por orden alfabético: ");
        for(Estudiante tmp:listaEstudiantes){
            System.out.print(tmp.getNombre()+", ");
        }
      
       
        Collections.sort(listaEstudiantes, new OrdenarPorEdad());
        System.out.print("\nLista estudiantes ordenados por edad: ");
        for(Estudiante tmp:listaEstudiantes){
            System.out.print(tmp.getNombre()+"("+tmp.getEdad()+")"+", ");
        }
        
        
        Collections.sort(listaEstudiantes, new OrdenarPorCurso());
        System.out.print("\nLista estudiantes ordenados por curso: ");
        for(Estudiante tmp:listaEstudiantes){
            System.out.print(tmp.getNombre()+(" ")+"("+tmp.getCurso()+")"+", ");
        }
      
    }
}