miércoles, 29 de diciembre de 2010

Vectores dinámicos

 "Movimiento es el paso de la potencia al acto... "

Ahora que ya vimos como crear un vector de forma estática, vamos a crear vectores que puedan modificar su tamaño en caso de que se requiera.

De esto se encargará la clase Vector, en la cuál se guardarán datos de tipo Object.

Su constructor más simple es como el de cualquier otra clase, en este constructor el vector tendrá un tamaño para diez elementos, en caso de que se rebase el tamaño, el vector automáticamente duplicará su tamaño para poder almacenar más valores.
Vector vec=new Vector( );

Si se desea tener un tamaño especifico y además incrementarlo a nuestro antojo, el segundo constructor recibirá el tamaño inicial como primer argumento y cuánto se incrementará como segundo argumento.

Vector vec=new Vector(30,1);//Se indica un vector de 30 elementos y un incremento de uno.

También es posible sólo asignarle el tamaño, si se rebasa su tamaño entonces este se duplicará.

Vector vec=new Vector(30);

Una vez que ya sabemos como construir el vector, nos podemos ayudar de sus funciones para insertar, eliminar u obtener datos.

Para insertarle datos podemos hacerlo de dos formas:
 La primera es asignarle el valor que vamos a guardar con el método add, se guardará en un índice consecutivo:
  vec.add("Valor a guardar");
La segunda es asignarle un índice y el valor:
  vec.add(0,"Valor a guardar");//se guardará en el primer índice.

Para eliminar basta con especificar en la función remove el índice del valor a eliminar:
 vec.remove (0 );//eliminará el valor del índice 0

Para obtener datos, disponemos de dos métodos:
El primero es con get( índice ):
  vec.get( 0 );//obtener el valor del índice 0

O también con el método elementAt( índice);
vec.elementAt(0 );//obtener el valor del índice 0

Aquí les dejo un ejemplo de como llevar a cabo estas funciones:

import java.util.*; //librería para usar la clase Vector y la clase Scanner

public class VectorDinamico
{
   Vector vec;//declaramos nuestro vector
    int tam=5;//tamaño del vector
    //Lo creamos en el constructor
    public VectorDinamico()
     {
         vec=new Vector(tam,1);//Vector de 5 elementos incrementando a 1
          llenar( );//método para llenar el vector
          mostrar( );//mostraremos los datos
         eliminar ( );//eliminamos un dato
         mostrar( );//mostramos de nuevo
      }
   public void llenar( )
   {
        for(int i=0;i  < tam;i++)
         { 
                Scanner sc=new Scanner(System.in);
               System.out.println("Dame un valor para el índice: "+i );
                 vec.add( sc.next( ) );
          }//fin del ciclo
   } //fin del método llenar
  public void mostrar()
    {
       for(int i=0;i < tam;i++)
       {
          
           System.out.println("Valor del índice: "+i+" es: "+vec.get(i));
          
       }      
   }//fin del método
  public void eliminar()
   {
        int ind;//variable para almacenar el indice obtenido
           Scanner sc=new Scanner(System.in);
           System.out.println("Indice del valor a eliminar: ");
           ind=sc.nextInt();
          vec.remove(ind);
           vec.add(ind,0);//Le asignamos el valor de 0 al valor eliminado para que no genere errores
   }
   public static void main(String[ ]args)
   {
     new VectorDinamico( );  
   }   
}//fin de la clase

Les dejo el resultado ya que me lo recomendaron:

Esto es todo por el momento, espero les sirva. Saludos!