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


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  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 249 veces)
JAZzZ

Desconectado Desconectado

Mensajes: 2


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

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 por engel lex » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.215


ASMático


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

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
Ordenar datos de un array con metodo Burbuja
Programación C/C++
stuartmsc 3 17,271 Último mensaje 25 Marzo 2009, 22:33
por stuartmsc
Como agregar un arreglo de tipo persona en un Archivo en java.
Java
solNegr0; 7 4,745 Último mensaje 30 Marzo 2011, 17:10
por solNegr0;
Impementar un metodo ordenar!!!
Java
XxArCaNgElxX 6 5,995 Último mensaje 1 Julio 2011, 15:41
por ShotgunLogic
necesito ayuda para ordenar en c
Programación C/C++
marrison 3 661 Último mensaje 23 Diciembre 2012, 13:08
por marrison
Como se podría ordenar por el método de la burbuja
Programación C/C++
TheMainStayz 3 804 Último mensaje 2 Octubre 2015, 19:24
por TheMainStayz
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines