Autor Tema: Ejercicios resueltos Java interfaz comparable compareTo ejemplo código CU00913C  (Leído 1716 veces)

@mayakoski

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
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);
}
}
« Última modificación: 13 de Septiembre 2020, 11:42 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:CU00913C Ejercicio ejemplo resuelto interfaz comparable java compareTo
« Respuesta #1 en: 06 de Marzo 2020, 20:33 »
Todo parece correcto, nada que objetar.  :D         
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".