Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.

* Contenido actualizado diariamente!!

* Nueva categoría JavaScript!, aprender javascript está en tus manos!

* Nueva categoría VB .Net!, aprender VB .NET fácilmente con franvarvil!

* Sigue a la página para seguir creciendo!!

viernes, 13 de abril de 2012

Java: Vectores o Arrays (Parte I)

9 comentarios :
Introducción

Cuando se entra al mundo de la programación, una de las primeras estructuras que se encuentran son los vectores o arrays, en esta entrada se explicará que son y como funcionan lógicamente estas estructuras.

Desarrollo

¿Qué es un vector?

Según Wikipedia un vector es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo.

Los vectores se utilizan para almacenar información de una manera más ordenada y de esta forma será mas fácil y rápido de acceder a la información cuando la necesitemos.

Un vector es una estructura estática, que se maneja por índices, cada uno de estos índices es un espacio donde se puede almacenar un valor. Si visualizamos un vector en una imagen sería así:


Como se aprecia en la imagen, los indices del vector empiezan en cero, y cada cuadro contendría adentro un valor específico, en caso que se le hubiera dado uno, de lo contrario aparecerá por defecto como null.

Ahora bien, ¿cómo se crea un vector en java?

La forma de crear un vector en java es sumamente sencilla, es suficiente con agregar los paréntesis cuadrados, "[ ]", al final del tipo de nuestra variable, como ejemplo vamos a crear un vector de Strings, uno de enteros y otro de Object, se procede de la siguiente manera:

String[] vectorDeStrings;
int[] vectorDeEnteros;
Object[] vectorDeObjetos; 

Como ven es muy sencillo es una inicialización normal solo que le agregamos los paréntesis cuadrados, ahora se preguntarán ¿de qué tamaño es el vector? ¿cómo agrego valores dentro del vector? o ¿cuál es la manera de obtener los valores ya asignados al vector?. Todas estas preguntas se resolverán a continuación.

Bueno empezaremos por la primera pregunta, como ven la inicialización de nuestro vector no esta completa, porque necesitamos crear el nuevo vector y darle un tamaño, este tamaño será el número de elementos que el vector pueda contener.

Hay varias formas de darle el tamaño a un vector la más corriente es ponerla al final de la inicialización de la variable dentro de los paréntesis cuadrados, así:

String[] vectorDeStrings = new String[10];
int[] vectorDeEnteros = new int[256];

Como ven esta es la inicialización completa de un vector, ahora un repaso rápido:

 - Se selecciona el tipo de variables que va a contener el vector.
 - Se le da un nombre para identificar nuestra variable.
 - Creamos la nueva variable y le asignamos un tamaño.

Ya nuestro vector está listo!, ahora tenemos que agregar valores a ese vector, esta tarea no es complicada en lo absoluto, en realidad es muy sencillo como veremos con un pequeño ejemplo, con un ciclo for llenaremos un vector de enteros de tamaño 10.

int[] numeros = new int[10];

for(int indice = 0; indice < numeros.length; indice++){

    numeros[indice] = indice + 1;

}

Con este sencillo for estamos agregando valores del cero al nueve a nuestro vector de números, explicaré mas detalladamente este trozo de código:
 - Inicializamos nuestro vector como se explicó anteriormente.
 - Creamos una variable llamada indice, la función de este indice es llevar el control de los campos de nuestro vector, para que agregue cada número en una posición diferente y siguiente de la anterior para que no queden espacios nulos en medio de nuestro vector.
 - Condición indice<numeros.length, esto es para que a la hora de agregar los números al vector no se sobrepase del tamaño del mismo, porque si no nuestro programa se "caeria", la función del .length es medir el tamaño del vector como empieza a contar desde uno el tamaño seria diez pero la posición diez en nuestro vector no existe (porque va del cero al nueve) por eso se pone el "menor que" para que no se desborde debido a que no buscará una posición inexistente en el vector.
 - Se agrega un número al vector en la posición que tenga el valor de indice, como indice empieza en cero, sería en la posición cero del vector agregue el valor de indice mas uno y así sucesivamente.

Ojo, hay que tener cuidado en que índice vamos a guardar la información porque si guardamos un valor en un índice que ya tiene algo contenido, el valor anterior sera reemplazado por el entrante.

Obtener valores de un vector, si vemos gráficamente nuestro vector anterior quedó de la siguiente manera:

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]

Para obtener el valor de determinada posición se escribe:
 - El nombre de nuestro vector.
 - Paréntesis cuadrados "[]"
 - Dentro de ellos la posición de la cual queremos obtener el valor.

Ejemplo:

Voy a imprimir la suma de las posiciones 2 y 3:

System.out.println(numeros[2] + numeros[3]);

Esto tiene que dar como resultado: 7, por lo siguiente, numeros[2] = 3 y numeros[3] = 4, por tanto 3+4=7, recordar se empieza a contar desde cero en el vector.

Conclusiones

Esta estructura es una de las más básicas en la programación en java y permite generar arreglos que pueden facilitar el control y manejo de variables en la aplicación.

Siempre tener en cuenta que este tipo de vectores son estáticos, es decir, su tamaño no puede variar dentro de la ejecución del programa.

9 comentarios :

  1. me parece que eso es un array no un vector!

    ResponderEliminar
  2. un array es lo mismo que un vector

    ResponderEliminar
  3. creo que esos son arreglos no vectores,puede ser???y no es lo mismo el vector forma parte del paquete util de java y el tamaño es flexible a diferencia del array

    ResponderEliminar
    Respuestas
    1. te lo digo bien no de mala onda

      Eliminar
    2. Esa estructura de datos desde mis inicios la conosco como vector y me voy a quedar con que se llama vector, aunque otros le llamen diferente, y esa libreria a la que te refieres se llama Vector es esa que describes(hay otro blog sobre esa clase), este vector que explico yo es estático y en el transcurso de ejecución no puede ser alterado (su tamaño) y se acerca más a lo que tu llamas array pura vida (Y)

      Eliminar
  4. hay alguna manera de crear un vector y darle valores a sus posiciones en la misma sentencia? algo como
    int [] a=new int [4] {1,2,3,4}; algo asi vamos xd

    ResponderEliminar
    Respuestas
    1. int v [] = new int[] {1,2,3,4};

      Practicamente igual que lo que usted escribió

      Eliminar
  5. CONCUERDO CON ÉL.

    int n[]=new int[]{1,2,3,4};

    ResponderEliminar
  6. La clase vector es una cosa.
    Otra cosa es el concepto de Array que se enseña inicialmente en Java. la clase Vector es mas avanzada y es dinamica con bien mencionaron. Esto quiere decir que se puede modificar la asignacion de memoria despues de creado.

    El concepto de ARRAY significa arreglos. un ARRAY o ARREGLO puede ser unidimensional (Vector), bidimensional (Matriz), tri-dimensional (vector de 3 dimensiones) o n-dimensional.
    No confundir los terminos ARRAY, ARREGLO, VECTOR. Si bien en la practica se pueden considerar sinonimos, la diferencia es la que explique.

    ResponderEliminar