Vectores o Arrays en Java
Posted on : 28-02-2009 | By : robertbriones | In : General, Java, Tips
5
Los vectores o arrays son de mucha utilidad y existen en muchos lenguajes de programación, sin embargo para los programadores novatos la utilización de vectores les resulta confusa al principio, así que trataré de explicarlo de una manera sencilla y funcional.
Normalmente utilizamos variables para guardar valores en Java, dichas variables tienen un tipo y almacenan un valor el cual puede ir cambiando a lo largo del programa, sin embargo muchas veces es necesario guardar mas de un dato del mismo tipo y relacionados entre sí y lo que hacemos es crear una variable para cada valor.
Por ejemplo supongamos que queremos guardar el nombre de 5 personas, lo primero que se nos ocurre es crear 5 variables de tipo String para guardar esos datos:
String nombre1=javax.swing.JOptionPane.showInputDialog("Escribe el nombre 1"); String nombre2=javax.swing.JOptionPane.showInputDialog("Escribe el nombre 2"); String nombre3=javax.swing.JOptionPane.showInputDialog("Escribe el nombre 3"); String nombre4=javax.swing.JOptionPane.showInputDialog("Escribe el nombre 4"); String nombre5=javax.swing.JOptionPane.showInputDialog("Escribe el nombre 5");
Lo malo de esto es que se utilizan demasiadas variables, en este caso tan solo fueron 5 por el ejemplo, pero si hubieran sido 20 nombres entonces el programa se vuelve demaciado extenso y dificil de manejar.
Pues los vectores o arrays nos permiten almacenar multiples valores de un mismo tipo en una sola variable, y nos evitan tener que usar multiples variables para multiples datos de un mismo tipo, en eso rádica su utilidad. De manera que el código anterior utilizando vectores quedaría de la siguiente manera:
String [] nombres = new Strint[5]; for (int i=0; i "menor que" nombres.length ; i++){ nombres[i] = javax.swing.JOptionPane.showInputDialog("Escribe el nombre "+i); }
Mas simple ¿no lo crees?, ahora veamos poco a poco lo que se hizo, un vector se define de la misma manera que una variable, la diferencia es que lleva un par de corchetes despues del tipo de dato, estos también pueden ir despues del nombre de la variable, la definición de un vector puede ser de cualquiera de las siguientes maneras:
tipo_dato [] variable; tipo_dato variable [];
Sin embargo un vector no se puede utilizar hasta que sea creado, para ello usaremos la palabra reservada “new”, en donde también definiremos el tamaño del vector, es decir el número de datos del mismo tipo que puede almacenar. Esto se hace de la siguiente forma:
variable = new tipo_dato [tamaño];
donde variable es el nombre de la variable previamente definida, tipo_dato es el tipo de dato utilizado para definir la variable, y tamaño es un número entero positivo que simboliza el número de elementos que podrá guardar el vector.
El paso anterior puede hacerse individualmente, o en conjunto con la definición de la variable, por ejemplo el siguiente ejemplo también es valido:
int [] edad = new int [10];
En donde estamos definiendo una variable vector de tipo entero (int) y al mismo tiempo hacemos la creación del vector con una capacidad de 10 elementos. Despues de esto ya podemos utilizar nuestro vector, pero aún no sabemos como funciona.
Es simple, los vectores se manejan por medio de un indice númerico entero, en donde el indice representa la posicion del vector. ¿Confuso? No te preocupes vamos a verlo con un ejemplo, suponiendo que tomemos el vector “edad” definido arriba podriamos guardar un dato entero en el vector en cualquiera de sus posiciones:
// Guardamos el valor entero "25" en la posición "4" de nuestro vector "edad" edad [4] = 25; // Guardamos el valor entero "334" en la posición "7" de nuestro vector "edad" edad [7] = 334;
Como puedes ver se pueden guardar datos en los vectores en posiciones no consecutivas aunque por lo general no lo hagamos así, hay que tener en cuenta que el indice debe estar comprendido entre cero y el tamaño del vector menos 1, es decir que en el caso de nuestro vector edad, el indice puede ser de cero a 9 (ya que 10 – 1 = 9 ) por lo que si ponemos en el indice algo como esto:
edad [10]= 666 ;
Nos dará un error debido a que estamos queriendo accesar a un indice no existente, por ello es que hay que ser cuidadosos a la hora de manejar los indices de un vector.
En el ejemplo de los “nombres” vimos que utilizamos un ciclo para pedir los datos, supongo que ahora ya entenderás porque lo utilizamos, el ciclo inicializa la variable “i” en cero porque el cero es el indice cero es la primera posición de un vector, y condicionamos a que entre al ciclo mientras el indice sea menor que el tamaño del vector, para ello hacemos uso del atributo “length” que es una variable que todos los vectores tienen en donde se guarda el tamaño del vector.
for (int i=0; i "menor que" nombres.length ; i++){ //En lugar de utilizar un indice fijo podemos utilizar una variable en este caso "i" nombres[i] = javax.swing.JOptionPane.showInputDialog("Escribe el nombre "+i); }
En realidad “menor que” es el signo “<” pero por alguna razón no me deja mostrarlo en el código así que si quieres probarlo, recuerda sustituirlo.
Esto es lo básico sobre arrays o vectores, es importante destacar que puedes utilizar cualquier tipo de dato para definir un vector, desde los primitivos hasta los tipo objeto, y que no puedes imprimir el valor de un vector directamente ya que esto imprimiria la referencia del objeto, para imprimir un vector hay que imprimir cada uno de sus indices.
¿Alguna duda? No olvides comentarla






