Buenos días, ejercicio CU00918C del tutorial de programación Java avanzado.
Para su revisión, Gracias
package estudiante;
import java.util.ArrayList;
import java.util.Collections;
/**
*
* @author itco1724
*/
public class TestEstudiante {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Estudiante> listaEstudiante = new ArrayList<>();
listaEstudiante.add(new Estudiante("Carlos",19,3));
listaEstudiante.add(new Estudiante("Felipe",21,1));
listaEstudiante.add(new Estudiante("Ana",18,4));
listaEstudiante.add(new Estudiante("Rosa",15,1));
listaEstudiante.add(new Estudiante("Jose",10,2));
/*ista de Estudiantes ha sido ordenada usando la invocación Collections.sort pasando como parámetro la colección y el orden
*utilizado en esta invocación es el orden natural definido en su clase*/
Collections.sort(listaEstudiante);
System.out.println("Estudiantes Ordenados por nombre: "+ listaEstudiante);// Ejemplo uso ordenación natural
Collections.sort(listaEstudiante, new OrdenarEstudiantePorEdad());
System.out.println("Estudiantes Ordenados por edad: "+listaEstudiante);
Collections.sort(listaEstudiante, new OrdenarEstudiantePorCurso());
System.out.println("Estudiantes Ordenados por curso: "+listaEstudiante);
}
}
package estudiante;
/**
*
* @author itco1724
*/
public class Estudiante implements Comparable<Estudiante>{
//campos nombre, edad y curso.
private String nombre;
private int edad;
private int curso;
public Estudiante(String nombre, int edad, int curso) { this. nombre = nombre; this. edad = edad;this.curso = curso;}
@Override
public Estudiante clone() {
Estudiante clon = new Estudiante(this.nombre, this.edad, this.curso);
return clon;}
@Override
public String toString() {
return " Nombre: "+ nombre+" Edad: "+edad+" Curso: " + curso + "\n";}
//Cuando se trate de realizar una ordenación “natural”, esta se hará por orden alfabético de nombres.
@Override
public int compareTo(Estudiante o) {
return this.nombre.compareTo(o.nombre);}
public String getNombre() { return nombre; }
public int getEdad() { return edad;}
public int getCurso() { return curso;}
} //Cierre de la clase
package estudiante;
import java.util.Comparator;
/**
* orden total
* @author itco1724
*/
public class OrdenarEstudiantePorEdad implements Comparator<Estudiante> {
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o2.getEdad() - o1.getEdad(); // Devuelve un entero positivo si la edad de o1 es mayor que la de o2
}
}
package estudiante;
import java.util.Comparator;
/**
*
* @author itco1724
*/
public class OrdenarEstudiantePorCurso implements Comparator<Estudiante> {
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getCurso() - o2.getCurso(); // Devuelve un entero positivo si la altura de o1 es mayor que la de o2
}
}