Bienvnidos sean a este post, hoy hablaremos sobre la estructura de datos llamada Vector la cual se puede considerar como un array dinamico pero con dos diferencias con respecto a la lista de tipo Array:

  • Vector es sincronizado
  • Vector tiene muchos metodos heredados que no son parte de sus colecciones

Una de las ventajas mas particulares de Vector con respecto a Array es que nos permite tener un Array sin un tamaño definido, el cual se reajustara automaticamente a traves de la vida util en un programa, veamos alguno de los tipos de constructores para nuestra clase:

  • Vector(), es el contructor predeterminado y tiene un valor inicial de 10 elementos
  • Vector(int tam), constructor que accepta un valor inicial para el tamaño del mismo
  • Vector(int tam, int incr), este constructor acepta un valor incial para el tamaño del mismo y a su vez recibe un valor para incrementarlo la cantidad de espacios informado en incr cada vez que se reajusta el tamaño del mismo
  • Vector(Collection c), el constructor crea un Vector con los elementos de la coleccion c, esto lo veremos en otro post

Nuestro siguiente escalon sera sobre algunos metodos disponibles para la clase:

  • void add(int indice, Object elemento), agrega un elemento en el indice especificado
  • boolean add(Object o), agrega un elemento al final del vector
  • boolean addAll(Coleccion c), agrega todos los elementos de la coleccion al final del vector en el orden que son devueltos por el Iterator
  • boolean addAll(int indice, Coleccion c), agrega todos los elementos de la coleccion en el lugar especificado por indice
  • void addElement(Object o), agrega el elemento especificado al final del vector e incrementandolo en uno a su tamaño
  • int capacity(), devuelve el tamaño actual del vector
  • void clear(), remueve todos los elementos de un vector
  • Object clone(), devuelve una copia del vector
  • boolean contains(Object o), chequea si el objeto especificado es un componente del vector
  • boolean containsAll(Coleccion c), devuelve verdadero si todos los componentes de la coleccion se encuentran en el vector
  • void copyInto(Object[] unArray), copia los elementos del vector en el array informado
  • Object elementAt(int indice), devuelve el componente en el indice especificado
  • Enumeration elements(), devuelve una enumeracion de los componentes de un vector
  • void ensureCapacity(int capacidadMinima), se incrementa el tamaño del vector y en caso de ser necesario a la capacidad minima especificada
  • boolean equals(Object o), compara el objeto informado con el vector para ver si son iguales
  • Object firstElement(), devuelve el primer elemento de un vector
  • Object get(int indice), devuelve el elemento de un vector en el indice especificado
  • int hashCode(), devuelve el valor del codigo hash del vector
  • int indexOf(Object o), busca por la primera ocurrencia del argumento informado, chequeando por igualdad mediante el metodo equals()
  • int indexOf(Object o, int indice), es similar al anterior pero comienza desde el indice especificado
  • void insertElementAt(Object o, int indice), inserta el objeto informado como un elemento del vector en el indice informado
  • boolean isEmpty(), chequea si el vector no contiene elementos
  • Object lastElement(), devuelve el ultimo elemento de un vector
  • int lastIndexOf(Object o), devuelve el ultimo indice de ocurrencias del objeto informado en un vector
  • int lastIndexOf(Object o, int indice), hace una retrobusqueda desde el indice informado y devuelve el indice de ello
  • Object remove(int indice), remueve el elemento de un vector en el indice especificado
  • boolean removeAll(Coleccion c), remueve del vector todos los elementos contenidos en la coleccion informada
  • void removeAllElements(), remueve todos los elementos de un vector y establece su tamaño en cero
  • boolean removeElement(Object o), remueve la primera ocurrencia con el argumento informado del vector
  • void removeElementAt(int indice), remueve un elemento en el indice informado
  • protected void removeRange(int inicio, int final), remueve todos los elementos que se encuentran entre el rango informado por inicio y final
  • boolean retainAll(Coleccion c), retiene los elementos de un vector que estan contenidos en la coleccion informada
  • Object set(int indice, Objeto o), reemplaza el elemento del indice especificado con el elemento informado en el vector
  • void setElementAt(Object o, int indice), setea el componente al indice indicado en el vector para el objeto especificado
  • void setSize(int nuevo), setea el tamaño del vector
  • int size(), devuelve el numero de componentes de un vector
  • List subList(int inicio, int final), devuelve una porcion de la lista en el rango informado
  • Object[] toArray(), convierte el vector en un array con todos los elementos en el orden correspondiente
  • Object[] toArray(Object[] o), igual al anterior pero el tipo de array que retorna es del tipo informado en los argumentos
  • String toString(), devuelve una representacion de cadena de un vector y a su vez cada elemento del mismo es de tipo cadena
  • void trimToSize(), recorta el tamaño del vector para que coincida con el tamaño actual del mismo

Implementemos un ejemplo para entender el concepto, para ello crearemos el siguiente programa:

VectorDemo.java

import java.util.*;

public class VectorDemo
{
        public static void main(String[] args)
        {
                Vector v = new Vector(3,2);
                System.out.println("Tam. inicial: " + v.size());
                System.out.println("Cap. inicial: " + v.capacity());

                v.addElement(new Integer(1));
                v.addElement(new Integer(2));
                v.addElement(new Integer(3));
                v.addElement(new Integer(4));
                System.out.println("Cap. despues de 4 adiciones: "
                                                + v.capacity());

                v.addElement(new Double(5.45));
                System.out.println("Cap. actual: " + v.capacity());

                v.addElement(new Double(6.08));
                v.addElement(new Integer(7));
                System.out.println("Cap. actual: " + v.capacity());

                v.addElement(new Float(9.4));
                v.addElement(new Integer(10));
                System.out.println("Cap. actual: " + v.capacity());

                v.addElement(new Integer(11));
                v.addElement(new Integer(12));
                System.out.println("Primer elemento: " + v.firstElement());
                System.out.println("Ultimo elemento: " + v.lastElement());

                if(v.contains(new Integer(3)))
                        System.out.println("Vector contiene 3");

                Enumeration vEnum = v.elements();
                System.out.println("\nElementos en el vector: ");

                while(vEnum.hasMoreElements())
                        System.out.print(vEnum.nextElement() + " ");
                System.out.println();
        }
}

En este codigo primero crearemos un Vector que tendra un tamaño inicial de 3 y se incrementara en 2 y mostraremos su tamaño inicial y su capacidad inicial, para luego agregarle cuatro elementos de tipo entero y mostrar su capacidad, despues agregaremos un nuevo elemento de tipo doble y mostrar nuevamente su capacidad, para nuestro siguiente accion agregaremos dos elementos: uno de tipo doble y otro de tipo entero y nuevamente mostraremos su capacidad, luego agregamos dos elementos: uno de tipo flotante y otro de tipo entero y nuevamente vemos su capacidad, para finalmente agregar dos elementos mas de tipo entero, una vez terminada nuestra carga de elementos ejecutaremos un firstElement() para ver cual es el primero de nuestro vector, luego ejecutaremos un lastElement() para ver cual es el ultimo, nuestro siguiente bloque chequeara si vector contiene el valor 3 entre sus elementos y en caso de ser verdad mostrara un mensaje para luego crear una variable de Enumeration donde contendra el valor de todos los elementos del vector y para finalizar un while() que gracias a la variable vEnum creada anteriormente chequeara si siguen existiendo elementos en la misma y los mostrara en pantalla gracias al metodo nextElement(), si compilamos nuestro programa y lo ejecutamos obtendremos la siguiente salida:

tinchicus@dbn001vrt:~/programacion/java/codigo$ java VectorDemo
Tam. inicial: 0
Cap. inicial: 3
Cap. despues de 4 adiciones: 5
Cap. actual: 5
Cap. actual: 7
Cap. actual: 9
Primer elemento: 1
Ultimo elemento: 12
Vector contiene 3

Elementos en el vector:
1 2 3 4 5.45 6.08 7 9.4 10 11 12
tinchicus@dbn001vrt:~/programacion/java/codigo$

En resumen, hoy hemos visto otra estructura de datos llamada Vector la cual es una version mas actualizada de Array, vimos que nos permite, sus ventajas con respecto al Array, los constructores, algunos metodos disponibles y un ejemplo donde pusimos en practica una gran cantidad de funciones o metodos, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios