ENCAPSULAMIENTO
Clases administradoras con arreglo de objetos
utilizando plantillas:
Clase ArrayList
ArrayList es una clase que
administra un arreglo dinámico de cualquier objeto. No tiene restricciones de
capacidad. Su tamaño se ajusta en forma dinámica utilizando eficientemente la
memoria del computador.
Tiene
un Constructor por defecto que define un tamaño inicial de 10. Va creciendo de
10 en 10.
Tiene
un constructor explícito donde recibe como parámetro el tamaño inicial del
arreglo que usted quiera establecer.
Los
elementos dentro de un ArrayList son Objetos de cualquier tipo.
Par un uso adecuado se recomienda particularizarlo al objeto que se quiera
administrar.
La clase ArrayList forma parte del paquete java.util
La funcionalidad de uso frecuente de la clase ArrayList
es la siguiente:
Método
|
Interpretación
|
int size()
|
Retorna
el tamaño actual: número de objetos guardados.
|
void add(obj)
|
Añade
un objeto al final del arreglo, incrementando su tamaño actual en 1.
|
Object get(i)
|
Devuelve
el objeto almacenado a la posición i en el arreglo.
i
tiene que ser un entero entre 0 y
size()-1.
|
void set(index, obj)
|
Reemplaza
el objeto de la posición index por el objeto obj.
|
Object
remove(index)
|
Elimina
el objeto a la posición index (index entre 0 y size()-1). Devuelve el objeto
eliminado. Los objetos después de este objeto se trasladan a una posición
anterior. El tamaño del ArrayList disminuye en 1.
|
int indexOf(obj)
|
Busca
el objeto dentro del arreglo, y si lo encuentra, devuelve la posición donde
lo ha encontrado. Si no, devuelve -1.
|
Ejemplo 1
Modifique
el contenido de la clase ArregloProductos, que tenga como atributo
privado un objeto de la clase ArrayList donde se guardarán los objetos.
import java.util.ArrayList;
public class ArregloProductos {
//
atributos
private ArrayList
<Producto> a ; // particulariza a objetos de tipo Producto
// constructor
public ArregloProductos(){
a = new
ArrayList<Producto>(); }
public int getN() { // retorna el número de objetos guardados
return a.size(); }
// métodos de administración
public void agrega(Producto p){ // guarda un Nuevo producto
a.add(p); }
public Producto getProducto(int i){ // obtiene un producto de la posición
i
return a.get(i); }
public void actualiza(Producto p, int i){//
reemplaza un producto
a.set(i, p); } // retorna la posición de un producto según su
código.
public int busca(String codigo){
for(int i=0; i<getN(); i++){
if(getProducto(i).getCodigo().equals(codigo))
return i; }
return -1; // no lo encontró }
public void elimina(int p){ // elimina el producto de la posición p
a.remove(p); }
public double mayorPrecio(){ // retorna el mayor precio
double m=a.get(0).getPrecio();
for(int
i=1; i<getN(); i++){
if(getProducto(i).getPrecio()>m)
m =getProducto(i).getPrecio(); }
return m; }
public double menorPrecio(){ // retorna el menor precio
double m=a.get(0).getPrecio();
for(int i=1; i<getN(); i++){
if(getProducto(i).getPrecio()<m)
m
=getProducto(i).getPrecio(); }
return m; }
}
Como puede observar, el uso de una clase plantilla
como ArrayList simplifica y facilita muchísimo la administración de los
arreglos de objetos. Por ejemplo ya no debemos preocuparnos por el tamaño del
arreglo. La programación de los botones en la clase que tiene el diseño de la
GUI, no cambia.
0 comentarios:
Publicar un comentario