Vectores o Arrays en Java

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:

[java]
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");
[/java]

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 podríamos 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 imprimiría la referencia del objeto, para imprimir un vector hay que imprimir cada uno de sus indices.

¿Alguna duda? No olvides comentarla 😉

9 comentarios

  1. Hola, estoi aprendiendo a programar en java y ando medio perdido,me parecio excelente el uso de los vectores para ahorrarme definiciones,… weno la consulta que te kiero hacer es sobre como discriminar una variable desde un grupo, x ejemplo pido 10 valores, y de estos quiero formar un subconjunto de 8 valores eliminando los valores de los extremos, onda el mas chiko y el mas grande no me sirven, como podria traducir esta selección al lenguaje??

  2. Mmmmm mi vida jeje que lindo lo explicaste, espero que no sea explicación pirateada eh? jajaja sino caeras de mi gracia jojo

    Wow… Que facilidad de palabra chamaco!

  3. olaaa… muy buena la informacion… pero tengo una gran duda… como hacemos cuando no queremos saber el tamaño del vector. oase ke tenga posiciones indefinidas.?

  4. Muy buen aporte Esta genial y te llevas algunas medallitas jajjjaja…XD pero como le ago para ke xo introdusca el tamaño del vector ???????

  5. ola chicos….esot iniciando ej java(pollito) y me gustaria saber como es que se hace para eliminar un dato …. tanto para caracter y para enteros…chicos ayudemme me gustaria saber mas….

  6. hola amigos ….:) es estupendo el programa de java,los convectores ni c digan, t ayudan demasiado a resolver el problema,solo espero aprender mas ….un saludo ami prof de programacion gggg, suerte chicos(a) sigan aprendiendo mas………

  7. hola tengo que hacer este programa en java con vectores dinamicos pero ni idea nunca e programado kisiera me ayudaran porfa me urge si se pudiera para mañana ya me duele la cabeza y nomas no le puedo.

    /*De un conjunto de 25 calificaciones almacenadas en un vector
    obtener las siguientes Características:
    a) número de calificaciones mayores que el promedio.
    b) número de alumnos aprobados.
    C) número de alumnos reprobados.
    D) % de alumnos acreditados.
    E) % de alumnos no acreditados.
    F) nombre del alumno con mayor promedio para ello necesitara almacenar
    en otro arreglo el nombre de cada uno de los alumnos a los que
    corresponden dichas calificaciones.
    */

¿Algo que decir? ¡Comentalo!