Planteo mi solución al ejercicio CU00918C del tutorial pdf de programación Java avanzada de aprenderaprogramar, espero les sirva
saludos
package claseCU00918C;
import java.util.Scanner;
public class Estudiante implements Comparable<Estudiante> {
private String nombre;
private int edad;
private int curso;
public Estudiante(String pNombre, int pEdad, int pCurso) {
this.nombre = pNombre;
this.edad = pEdad;
setCurso(pCurso);
}
@Override
public int compareTo(Estudiante o) {
return this.nombre.compareTo(o.nombre);
}
public String toString() {
return "El estudiante se llama: " + nombre + " tiene: " + edad + " años y esta en el " + curso + " curso"
+ "\n";
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
public int getCurso() {
return curso;
}
public void setCurso(int curso) {
Scanner entradaTeclado = new Scanner(System.in);
if (curso < 5 && curso > 0) {
this.curso = curso;
} else {
do {
System.out.println("El curso ingresado para el Estudiante " + this.nombre
+ " no es valido Ingrese un curso valido");
curso = entradaTeclado.nextInt();
} while (curso > 5 || curso < 0);
this.curso = curso;
}
}
}
package claseCU00918C;
import java.util.Comparator;
public class OrdenEstudiantePorEdad implements Comparator<Estudiante> {
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getEdad() - o2.getEdad() ;
}
}
package claseCU00918C;
import java.util.Comparator;
public class OrdenEstudiantePorCurso implements Comparator<Estudiante> {
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getCurso() - o2.getCurso();
}
}
package claseCU00918C;
/* Ejemplo Interface Comparator aprenderaprogramar.com */
import java.util.ArrayList;
import java.util.Collections;
public class Programa {
public static void main(String arg[]) {
ArrayList<Estudiante> listaEstudiantes = new ArrayList<Estudiante>();
listaEstudiantes.add(new Estudiante("Carlos", 19, 3));
listaEstudiantes.add(new Estudiante("Felipe", 21, 1));
listaEstudiantes.add(new Estudiante("Ana", 18, 4));
listaEstudiantes.add(new Estudiante("Rosa", 15, 1));
listaEstudiantes.add(new Estudiante("Jose", 10, 2));
System.out.println("Estudiantes sin orden: \n" + listaEstudiantes);
listaEstudiantes.toString();
Collections.sort(listaEstudiantes);
System.out.println("Estudiantes ordenados por Nombre: \n" + listaEstudiantes);
listaEstudiantes.toString();
Collections.sort(listaEstudiantes, new OrdenEstudiantePorEdad());
System.out.println("Estudiantes ordenados por Edad: \n" + listaEstudiantes);
listaEstudiantes.toString();
Collections.sort(listaEstudiantes, new OrdenEstudiantePorCurso());
System.out.println("Estudiantes ordenados por Curso: \n" + listaEstudiantes);
listaEstudiantes.toString();
}
}