Tengo los siguientes archivos:
Clase Principal:package prueba;
import clases.*;
public static void main
(String[] args
) { Persona aux[]=new Persona[3];
aux[0] = new Persona("Pedro", 1980);
aux[1] = new Persona("Maria", 1990);
aux[2] = new Persona("Juan", 1995);
ArregloPersonas ap=new ArregloPersonas(aux,3);
System.
out.
println(ap.
toString()); System.
out.
println("Edad promedio: " + ap.
getEdadPromedio()); //Consultando edad de una persona
int e=ap.consultaEdad(n);
if (e != 0)
System.
out.
println("La edad de " + n
+ " es " + e
+ " años"); else
System.
out.
println("No se hallo la persona"); //Nombre de la persona de mayor edad
System.
out.
println("Persona de mayor edad: " + ap.
nombreMayor());
//Listado de personas ordenados alfabeticamente
}
}
Arrego llamado: ArregloPersonas:package clases;
public class ArregloPersonas {
private Persona lista[];//arreglo
private int tamanio;
public ArregloPersonas(Persona[] lista, int tamanio) {
this.lista = lista;
this.tamanio = tamanio;
}
public ArregloPersonas() {
this.lista = new Persona[5];
this.tamanio = 5;
for (int i = 0; i < this.tamanio; i++) {
lista[i] = new Persona();
}
}
public Persona[] getLista() {
return lista;
}
/**
* @param lista the lista to set
*/
public void setLista(Persona[] lista) {
this.lista = lista;
}
/**
* @return the tamanio
*/
public int getTamanio() {
return tamanio;
}
/**
* @param tamanio the tamanio to set
*/
public void setTamanio(int tamanio) {
this.tamanio = tamanio;
}
@Override
for (int i = 0; i < lista.length; i++) {
texto += lista[i].toString() + ","
+ lista[i].getEdad() + "\n";
}
return texto;
}
public double getEdadPromedio() {
int s = 0;
for (int i = 0; i < lista.length; i++) {
s += lista[i].getEdad();
}
return (double) s / lista.length;
}
public int consultaEdad
(String nombre
) { int r = 0, c = 0;
while (c < lista.length && !nombre.equals(lista[c].getNombres())) {
c++;
}
if (c < lista.length) {
r = lista[c].getEdad();
}
return r;
}
//Metodo que retorne el nombre de la persona de mayor edad
int mayor = 0;
for (int i = 0; i < lista.length; i++) {
if (lista[i].getEdad() > mayor) {
mayor = lista[i].getEdad();
r = lista[i].getNombres();
}
}
return r;
}
//metodo de ordenacion
}
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 (http://foro.elhacker.net/reglas.htm)
-Engel Lex
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:
Arrays.
sort(array,
new Comparator
<Persona
>() { @Override
public int compare(Persona p1, Persona p2) {
return p1.getNombres().compareTo(p2.getNombres());
}
});
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.