package controlador;
/*
Clase que maneja un arreglo de data mediante un objeto de tipo ArrayList
Atributo a considerar (privado)
- Una referencia de tipo ArrayList
Métodos a considerar:
- Un constructor sin parámetros que cree el objeto ArrayList
- Un método "adicionar" que reciba una persona y la adicione al ArrayList
- Un método "eliminar" que reciba el código de una persona y la elimine del ArrayList
- Un método "obtener" que reciba un índice y retorne la persona de esa posición
- Un método "buscar" que reciba un código y retorne la persona con ese código
- Un método "tamaño" que retorne la cantidad de data ingresadas al ArrayList
- Un método "edadMaxima" que retorne la edad máxima
- Un método "edadMinima" que retorne la edad mínima
- Un método "edadPromedio" que retorne la edad promedio
- Un método que retorne la cantidad de data que se encuentren en el rango
de edad enviado desde la clase principal.
*/
import java.util.*;
import java.io.*;
import beans.Persona;
public class ControladorPersona {
private ArrayList<Persona> data;
public ControladorPersona() {
data = new ArrayList<Persona>();
leeArchivo();
}
public void adicionar(int codigo, String nombre, int edad) {
Persona p = new Persona(codigo, nombre, edad);
data.add(p);
}
public void eliminar(int codigo) {
for (Persona p : data)
if (p.getCodigo() == codigo) {
data.remove(data.indexOf(p));
break;
}
}
public void actualizar(Persona p) {
for (Persona aux : data)
if (aux.getCodigo() == p.getCodigo()) {
data.set(data.indexOf(aux), p);
break;
}
}
public Persona obtener(int codigo) {
for (Persona p : data)
if (p.getCodigo() == codigo)
return p;
return null;
}
public Persona buscar(int indice) {
return data.get(indice);
}
public int cantidad() {
return data.size();
}
public int edadMaxima() {
int mayor = data.get(0).getEdad();
for (Persona p : data)
if (p.getEdad() > mayor)
mayor = p.getEdad();
return mayor;
}
public int edadMinima() {
int menor = data.get(0).getEdad();
for (Persona p : data)
if (p.getEdad() < menor)
menor = p.getEdad();
return menor;
}
public double edadPromedio() {
int suma = 0;
for (Persona p : data)
suma += p.getEdad();
return suma * 1.0 / cantidad();
}
// Metodos que leen y grabar archivos
private void leeArchivo() {
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader("Persona.txt");
br = new BufferedReader(fr);
String linea = null;
String[] array = null;
Persona persona = null;
while ((linea = br.readLine()) != null) {
array = linea.split(",");
persona = new Persona();
persona.setCodigo(Integer.parseInt(array[0].trim()));
persona.setNombre(array[1].trim());
persona.setEdad(Integer.parseInt(array[2].trim()));
data.add(persona);
}
} catch (Exception ex) {
System.out.println(ex);
} finally {
try {
fr.close();
br.close();
} catch (IOException ex) {
System.out.println(ex);
}
}
}
public void grabaArchivo() {
FileWriter fr = null;
PrintWriter pw = null;
try {
fr = new FileWriter("Persona.txt");
pw = new PrintWriter(fr);
for (Persona o : data) {
pw.println(o.getCodigo() + "," + o.getNombre() + ","
+ o.getEdad());
}
} catch (Exception ex) {
System.out.println(ex);
} finally {
try {
fr.close();
pw.close();
} catch (IOException ex) {
System.out.println(ex);
}
}
}
}
muy buena info. Me sirvio mucho...
ResponderEliminar