Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: @mayakoski en 06 de Marzo 2020, 02:14

Título: Ejercicios resueltos Java interfaz comparable compareTo ejemplo código CU00913C
Publicado por: @mayakoski en 06 de Marzo 2020, 02:14
Dejo mi solución al ejercicio CU00913C del curso pdf de programación avanzada Java, espero cualquier critica u observación. Gracias.

Código: [Seleccionar]
package claseCU00913C;

public class Persona1 implements Comparable<Persona1> {
private String nombre;
private int edad;
private int altura;

public Persona1() {
};

public Persona1(String pNombre, int pAltura, int pEdad) {
this.setNombre(pNombre);
this.edad = pEdad;
this.altura = pAltura;
}

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 getAltura() {
return altura;
}

public void setAltura(int altura) {
this.altura = altura;
}

@Override
public int compareTo(Persona1 o) {
return this.edad > o.edad ? 1 : 0;
}

public int compareToAltura(Persona1 o) {
return this.altura < o.altura ? 1 : 0;
}

public String toString() {
return this.nombre + " - Altura: " + altura + " - Edad: " + edad;
}

}
Código: [Seleccionar]
package claseCU00913C;

public class OrdenaLista {

public OrdenaLista() {

}

public void OrdenaAltura(Persona1[] pPersonas) {
for (int i = 0; i < pPersonas.length - 1; i++) {
Persona1 aux = new Persona1();
for (int j = 0; j < pPersonas.length - 1; j++) {
if (pPersonas[j].compareToAltura(pPersonas[j + 1]) == 1) {
aux = pPersonas[j];
pPersonas[j] = pPersonas[j + 1];
pPersonas[j + 1] = aux;
}
}
}
}

public void OrdenaEdad(Persona1[] pPersonas) {
for (int i = 0; i < pPersonas.length - 1; i++) {
Persona1 aux = new Persona1();
for (int j = 0; j < pPersonas.length - 1; j++) {
if (pPersonas[j].compareTo(pPersonas[j + 1]) == 1) {
aux = pPersonas[j];
pPersonas[j] = pPersonas[j + 1];
pPersonas[j + 1] = aux;
}
}
}
}

public void imprime(Persona1[] personas) {
int cont = 0;

for (Persona1 persona : personas) {
cont += 1;
System.out.println(cont + ". " + persona.toString());
}
System.out.println("\n");
}

}
Código: [Seleccionar]
package claseCU00913C;

public class Programa1 {
public static void main(String[] args) {

Persona1 personas[] = new Persona1[5];
OrdenaLista listaOrdenada;

personas[0] = new Persona1("Mario", 187, 22);
personas[1] = new Persona1("Pepe", 173, 52);
personas[2] = new Persona1("Manuel", 158, 27);
personas[3] = new Persona1("David", 164, 25);
personas[4] = new Persona1("Alberto", 184, 80);
listaOrdenada = new OrdenaLista();

System.out.println("Personas sin ordenar \n");
listaOrdenada.imprime(personas);

listaOrdenada.OrdenaAltura(personas);
System.out.println("Personas ordenadas por altura \n");
listaOrdenada.imprime(personas);

listaOrdenada.OrdenaEdad(personas);
System.out.println("Personas ordenadas por edad \n");
listaOrdenada.imprime(personas);
}
}
Título: Re:CU00913C Ejercicio ejemplo resuelto interfaz comparable java compareTo
Publicado por: Kabuto en 06 de Marzo 2020, 20:33
Todo parece correcto, nada que objetar.  :D