You are on page 1of 13

Vectores en Java

Un vector es una coleccin finita de datos del mismo tipo, que se almacenan en posiciones
consecutivas de memoria y reciben un nombre comn.
Por ejemplo, supongamos que queremos guardar los nombres de 11 alumnos de una
clase. Para almacenar las notas utilizaremos un vector de 11 elementos de tipo String y en
cada elemento del vector guardaremos el nombre de cada alumno.
Podemos representar grficamente el vector de alumnos de la siguiente forma:

Para acceder a cada elemento del vector se utiliza el nombre del vector y un ndice que
indica la posicin que ocupa el elemento dentro del vector. El ndice se escribe entre
corchetes.
El primer elemento del vector ocupa la posicin 0, el segundo la posicin 1, etc. En un
vector de N elementos el ltimo ocupar la posicin N-1.
En el ejemplo anterior, alumnos[0] contiene el nombre del primer alumno y alumnos[10]
contiene el del ltimo. Los ndices deben ser enteros no negativos.

Crear vectores
Para crear un vector se deben realizar dos operaciones:

Declaracin.
Instanciacin.

Declarar un vector
En la declaracin se crea la referencia al vector. La referencia ser el nombre con el que
manejaremos el vector en el programa. Se debe indicar el nombre del vector y el tipo de
datos que contendr.
De forma general un vector se puede declarar en java de cualquiera de estas dos formas:
tipo[ ] nombreVector;
tipo nombreVector[ ];

tipo: indica el tipo de datos que contendr. Un vector puede contener elementos de tipo
bsico o referencias a objetos.
nombreVector: es la referencia al vector. Es el nombre que se usar en el programa para
manejarlo.
Por ejemplo:

Instanciar un vector
Mediante la instanciacin se reserva un bloque de memoria para almacenar todos los
elementos del vector. La direccin donde comienza el bloque de memoria donde se
almacenar el vector se asigna al nombre del vector.
De forma general:
nombreVector = new tipo[tamao];
nombreVector: es el nombre creado en la declaracin.
tipo: indica el tipo de datos que contiene.
tamao: es el nmero de elementos del vector. Debe ser una expresin entera positiva. El
tamao del vector no se puede modificar durante la ejecucin del programa.
new: operador para crear objetos. Mediante new se asigna la memoria necesaria para
ubicar el objeto. Java implementa los vectores como objetos.
Por ejemplo:

Lo normal es que la declaracin y la instanciacin se hagan en una sola instruccin:

El tamao del vector tambin se puede indicar durante la ejecucin del programa, es
decir, en tiempo de ejecucin se puede pedir por teclado el tamao del vector y crearlo:

Inicializar vectores
Un vector es un objeto, por lo tanto, cuando se crea, a sus elementos se les asigna
automticamente un valor inicial:

Tambin podemos dar otros valores iniciales al vector cuando se crea. Los valores iniciales
se escriben entre llaves separados por comas y deben aparecer en el orden en que sern
asignados a los elementos del vector. El nmero de valores determina el tamao del
vector.

Acceder a los elementos de un vector


Para acceder a cada elemento del vector se utiliza el nombre del vector y un ndice que
indica la posicin que ocupa el elemento dentro del vector, el cual se escribe entre
corchetes.
Por ejemplo:

Ejecucin del programa:

Un elemento de un vector se puede utilizar igual que cualquier otra variable. Se puede
hacer con ellos las mismas operaciones que se pueden hacer con el resto de variables
(incremento, decremento, operaciones aritmticas, comparaciones, etc).
Si se intenta acceder a un elemento que est fuera de los lmites del vector (un elemento
con ndice negativo o con un ndice mayor que el que corresponde al ltimo elemento del
vector) el compilador no avisa del error. El error se producir durante la ejecucin. En ese
caso se lanza una excepcin java.lang.ArrayIndexOutOfBoundsException.
Se puede saber el nmero de elementos del vector mediante el atributo length. Podemos
utilizar length para comprobar el rango del vector y evitar errores de acceso.
Por ejemplo, para asignar un valor a un elemento del vector que se leen por teclado:

Recorrer un vector
Para recorrer un vector se utiliza una instruccin iterativa (normalmente una instruccin
for, aunque tambin puede hacerse con while o do..while) utilizando una variable entera
como ndice que tomar valores desde el primer elemento al ltimo o desde el ltimo al
primero.
Por ejemplo, el siguiente fragmento de programa Java declara un vector de 3 elementos
de tipo int y le asigna valores iniciales. A continuacin recorre el vector, utilizando la
instruccin for, para mostrar por pantalla el contenido del vector.

Para evitar errores de acceso al vector es recomendable utilizar length para recorrer el
vector completo.
Por ejemplo:

A partir de java 5 se incorpora una instruccin for mejorada para recorrer vectores y
contenedores en general. Permite acceder secuencialmente a cada elemento del vector.
Mediante este bucle solo podemos acceder a los elementos del vector. No podemos hacer
modificaciones en su contenido.

Vectores con datos primitivos


Hay ocho tipos de datos primitivos soportados por Java. Los tipos de datos primitivos
estn predefinidos por el lenguaje y nombrados por una palabra clave. La forma en que se
inicializan es:

Vectores con objetos


Java es un lenguaje de programacin orientado a objetos. Un programa Java debe
contener objetos y las operaciones entre ellos. La nica excepcin a esto en un programa
Java son los tipos de datos primitivos (int, double, char, etc.)
Los tipos de datos primitivos no son objetos pero en ocasiones es necesario tratarlos
como tales. Por ejemplo, hay determinadas clases que manipulan objetos (ArrayList,
HashMap, ). Para poder utilizar tipos primitivos con estas clases Java provee las llamadas
clases envolventes tambin llamadas clases contenedoras o wrappers. Esto nos permite
utilizar mtodos para manipular los datos.
Cada tipo primitivo tiene su correspondiente clase envolvente:

Para instanciar vectores con la clase envolvente es similar a como se hace con los tipo
primitivos pero con su equivalente segn la tabla.
Todos los literales de la forma "cualquier texto", es decir, literales entre comillas dobles,
que aparecen en un programa java se implementan como objetos de la clase String.
Por ejemplo:

Adems estn los objetos creados por el programador, los cuales son instancias de una
clase. En un programa el objeto se representa mediante una variable. Esta variable
contiene la direccin de memoria del objeto.
Cuando se dice que Java no tiene punteros estamos diciendo que Java no tiene punteros
que podamos ver y manejar como tales en otros lenguajes como C/C++, pero debemos
saber que todas las referencias a un objeto son de hecho punteros, es decir, son variables
que contienen la direccin de memoria del objeto que representan.
La forma de declarar un vector de una instancia de clase es:
NombreClase[ ] referenciaObjeto = new NombreClase[5];
Por ejemplo:

Matrices en Java
Un vector o arreglo en Java puede tener ms de una dimensin. El caso ms general son
los arreglos bidimensionales tambin llamados matrices o tablas.
La dimensin de un arreglo la determina el nmero de ndices necesarios para acceder a
sus elementos.
Los vectores que hemos visto anteriormente son arreglos unidimensionales porque solo
utilizan un ndice para acceder a cada elemento.
Una matriz necesita dos ndices para acceder a sus elementos. Grficamente podemos
representar una matriz como una tabla de n filas y m columnas cuyos elementos son
todos del mismo tipo.
La siguiente figura representa una Matriz M de 3 filas y 5 columnas:

Pero en realidad una matriz en Java es un vector de vectores.

Grficamente podemos representar la disposicin real en memoria de la matriz anterior


as:

La longitud de la matriz M (M.length) es 3.


La longitud de cada fila de la matriz (M[i].length) es 5.
Para acceder a cada elemento de la matriz se utilizan dos ndices. El primero indica la fila y
el segundo la columna.

Crear matrices
Se crean de forma similar a los vectores, aadiendo un ndice.
Por ejemplo:

En Java se pueden crear matrices irregulares en los que el nmero de elementos de cada
fila es variable. Solo es obligatorio indicar el nmero de filas.
Por ejemplo:

Grficamente podemos representar la disposicin real en memoria de la matriz anterior


as:

Inicializar matrices
Para dar valores iniciales se escriben entre llaves separados por comas y dentro se deben
poner los vectores entre llaves tambin separados por comas. Deben aparecer en el orden
en que sern asignados a los elementos de la matriz. El nmero de valores determina el
tamao del vector.
Por ejemplo:

Recorrer matrices
Para recorrer una matriz se anidan dos bucles for. En general para recorrer un arreglo
multidimensional se anidad tantas instrucciones for como dimensiones tenga la matriz.
Ejemplo de recorrido de una matriz:

Salida:

Lo ideal es siempre recorrer la matrices con el atributo length ya que al ser irregulares va a
ir modificando slo el largo del recorrido de la columna.

La clase Vector
Los vectores en Java son suficientes para guardar tipos bsicos de datos, y objetos de una
determinada clase cuyo nmero se conoce de antemano. Algunas veces se desea guardar
objetos en un vector pero no se sabe cuntos objetos se van a guardar. Una solucin es la
de crear un vector cuya dimensin sea ms grande que el nmero de elementos que se
necesita guardar. La clase Vector proporciona una solucin alternativa a este problema.
Un vector es similar a un arreglo, la diferencia estriba en que un vector crece
automticamente cuando alcanza la dimensin inicial mxima. Adems, proporciona

mtodos adicionales para aadir, eliminar elementos, e insertar elementos entre otros
dos existentes.
Para usar la clase Vector se tiene que poner al principio del archivo del cdigo fuente la
siguiente sentencia import:

Crear un vector
Cuando se crea un vector u objeto de la clase Vector, se especifica su dimensin inicial, y
cuanto crecer si rebasamos dicha dimensin.

Aadir elementos al vector


Se puede aadir un elemento a continuacin del ltimo elemento del vector, mediante la
funcin addElement.

Se puede tambin insertar un elemento en una determinada posicin, mediante


insertElementAt. El segundo parmetro o ndice, indica el lugar que ocupar el nuevo
objeto. Si se trata de insertar un elemento en una posicin que no existe todava se
obtiene una excepcin del tipo ArrayIndexOutOfBounds.

Acceso a los elementos del vector

El acceso a los elementos de un vector no es tan sencillo como el acceso a los elementos
de un arreglo. En vez de dar un ndice, usamos la funcin elementAt. Por ejemplo,
v.elementAt(4) sera equivalente a v[4], si v fuese un arreglo.

Para acceder a todos los elementos del vector, se escribe un cdigo semejante al
empleado para acceder a todos los elementos de un arreglo.

La diferencia entre los arreglos y los Vectores es que se pueden incrementar y aplicar
mtodos.

You might also like