elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Necesito agregar a mi archivo un metodo para ordenar - JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito agregar a mi archivo un metodo para ordenar - JAVA  (Leído 2,786 veces)
JAZzZ

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Necesito agregar a mi archivo un metodo para ordenar - JAVA
« en: 5 Agosto 2017, 19:40 pm »

Tengo los siguientes archivos:

Clase Principal:

Código
  1. package prueba;
  2.  
  3. import clases.*;
  4.  
  5. public class Principal {
  6.  
  7.  public static void main(String[] args) {
  8.    Persona aux[]=new Persona[3];
  9.    aux[0] = new Persona("Pedro", 1980);
  10.    aux[1] = new Persona("Maria", 1990);
  11.    aux[2] = new Persona("Juan", 1995);
  12.  
  13.  
  14.    ArregloPersonas ap=new ArregloPersonas(aux,3);
  15.    System.out.println(ap.toString());
  16.    System.out.println("Edad promedio: " + ap.getEdadPromedio());
  17.    //Consultando edad de una persona
  18.    String n="Carlos";
  19.    int e=ap.consultaEdad(n);
  20.    if (e != 0)
  21.      System.out.println("La edad de " + n + " es " + e + " años");
  22.    else
  23.      System.out.println("No se hallo la persona");
  24.    //Nombre de la persona de mayor edad
  25.    System.out.println("Persona de mayor edad: " + ap.nombreMayor());
  26.  
  27.    //Listado de personas ordenados alfabeticamente
  28.  
  29.  
  30.  }
  31.  
  32. }


Arrego llamado: ArregloPersonas:

Código
  1. package clases;
  2.  
  3. public class ArregloPersonas {
  4.  
  5.  private Persona lista[];//arreglo
  6.  private int tamanio;
  7.  
  8.  public ArregloPersonas(Persona[] lista, int tamanio) {
  9.    this.lista = lista;
  10.    this.tamanio = tamanio;
  11.  }
  12.  
  13.  public ArregloPersonas() {
  14.    this.lista = new Persona[5];
  15.    this.tamanio = 5;
  16.    for (int i = 0; i < this.tamanio; i++) {
  17.      lista[i] = new Persona();
  18.    }
  19.  }
  20.  
  21.  public Persona[] getLista() {
  22.    return lista;
  23.  }
  24.  
  25.  /**
  26.    * @param lista the lista to set
  27.    */
  28.  public void setLista(Persona[] lista) {
  29.    this.lista = lista;
  30.  }
  31.  
  32.  /**
  33.    * @return the tamanio
  34.    */
  35.  public int getTamanio() {
  36.    return tamanio;
  37.  }
  38.  
  39.  /**
  40.    * @param tamanio the tamanio to set
  41.    */
  42.  public void setTamanio(int tamanio) {
  43.    this.tamanio = tamanio;
  44.  }
  45.  
  46.  @Override
  47.  public String toString() {
  48.    String texto = "";
  49.    for (int i = 0; i < lista.length; i++) {
  50.      texto += lista[i].toString() + ","
  51.        + lista[i].getEdad() + "\n";
  52.    }
  53.    return texto;
  54.  }
  55.  
  56.  public double getEdadPromedio() {
  57.    int s = 0;
  58.    for (int i = 0; i < lista.length; i++) {
  59.      s += lista[i].getEdad();
  60.    }
  61.    return (double) s / lista.length;
  62.  }
  63.  
  64.  public int consultaEdad(String nombre) {
  65.    int r = 0, c = 0;
  66.    while (c < lista.length && !nombre.equals(lista[c].getNombres())) {
  67.      c++;
  68.    }
  69.    if (c < lista.length) {
  70.      r = lista[c].getEdad();
  71.    }
  72.    return r;
  73.  }
  74.  
  75.  //Metodo que retorne el nombre de la persona de mayor edad
  76.  public String nombreMayor() {
  77.    String r = null;
  78.    int mayor = 0;
  79.    for (int i = 0; i < lista.length; i++) {
  80.      if (lista[i].getEdad() > mayor) {
  81.        mayor = lista[i].getEdad();
  82.        r = lista[i].getNombres();
  83.      }
  84.    }
  85.    return r;
  86.  }
  87.  
  88.  //metodo de ordenacion
  89.  
  90.  
  91. }

Quiero agregar el Listado de personas ordenados alfabeticamente, tengo que agregar en el Arreglo y en la Clase PRincipal; AYUDA PLEASE!!!!


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex


« Última modificación: 5 Agosto 2017, 19:42 pm por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Necesito agregar a mi archivo un metodo para ordenar - JAVA
« Respuesta #1 en: 5 Agosto 2017, 21:40 pm »

Tienes el método "Arrays.sort(array, comparator)". Existe el método sin el segundo parámetro, pero dado que tu clase Persona no es comparable (intuyo), hay que pasarle un comparador.

El comparador es una clase anónima, sin más:

Código
  1. Arrays.sort(array, new Comparator<Persona>() {
  2.    @Override
  3.    public int compare(Persona p1, Persona p2) {
  4.        return p1.getNombres().compareTo(p2.getNombres());
  5.    }
  6. });

Intuyo que getNombres es el método mediante el cual obtienes el nombre con el cual ordenar.
compare y compareTo retornan 0 si son iguales, un número negativo si el primero es menor o un número positivo si el primero es mayor.

"Arrays.sort" llamará a "Comparator.compare" cada vez que necesite comparar dos elementos.

Y bueno, dónde aplicar este "Arrays.sort" ya queda a tu elección.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como agregar un arreglo de tipo persona en un Archivo en java.
Java
rub'n 7 7,865 Último mensaje 30 Marzo 2011, 17:10 pm
por rub'n
Impementar un metodo ordenar!!!
Java
XxArCaNgElxX 6 12,642 Último mensaje 1 Julio 2011, 15:41 pm
por ShotgunLogic
necesito ayuda para ordenar en c
Programación C/C++
marrison 3 1,953 Último mensaje 23 Diciembre 2012, 13:08 pm
por marrison
ayuda para ordenar datos de un archivo en c
Programación C/C++
jkomarcelino 0 1,433 Último mensaje 3 Agosto 2018, 03:54 am
por jkomarcelino
(Pregunta): ¿Existe este método para agregar HTML a un elemento?
Desarrollo Web
Leguim 9 4,637 Último mensaje 29 Julio 2021, 06:51 am
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines