Conviértete en un emprendedor,profesional del conocimiento en la programación

sábado, 7 de enero de 2012

CLASE ARRAYLIST

Compartir con:


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