noviembre 14, 2011

Arreglos en JAVA

Los arreglos en JAVA están catalogados como estructuras de datos y son objetos, estos no son mas que una colección de datos del mismo tipo; de otro modo podríamos decir que es un conjunto de variables de un solo tipo. Como los arreglos tienen varios elementos, a cada elemento se le llama "indice" y estos van enumerados desde el 0 hasta n-1 (donde n es la cantidad de elementos que nosotros establecemos para nuestro arreglo); los arreglos son de tamaños fijos (el tamaño que nosotros le indiquemos). Por ejemplo supongamos que tenemos 5 números: 10, 20, 30, 40 y 50, esta es una colección de datos de un mismo tipo, por tanto es un arreglo y se representa así:

numeros [ 0 ]
10
numeros [ 1 ]
20
numeros [ 2 ]
30
numeros [ 3 ]
40
numeros [ 4 ]
50

La representación anterior es un arreglo de nombre "numeros" de tamaño 5 (osea que contiene 5 variables, 5 elementos), los números que están entre corchetes son los subíndices (como dijimos, los subíndices se empiezan a enumerar desde el numero 0) y los números que están en letras amarillas son los elementos del arreglo, son el conjunto de variables de tipo int. Entonces, la manera de representar en java a un arreglo es mediante los corchetes, para representar el esquema anterior en java, basta con indicar el tipo de elementos que contiene, el nombre del arreglo y los corchete para indicar que es un arreglo, de tal modo que seria algo asi: int numeros[].

Llevando esto a la programación, los arreglos se declaran o crean así:
//Archivo: Arreglo.java

public class Arreglo{
 
 public static void main(String args[]){
  
  int numeros[];
  numeros = new int[5];
 }
}
En el codigo anterior estamos creando un arreglo de 5 elementos tipo int. En la linea 7 se declara el arreglo int numeros[] y en la linea 8 creamos el objeto y le damos el tamaño a nuestro arreglo. En el simple código anterior solo creamos nuestro arreglo con 5 elementos, pero todos esos elementos tienen valor de 0, ya que 0 es el valor predeterminado para las variables int; y no podemos ver esos elementos, solo sabemos que están ahi y los imaginamos.

La función .length de un arreglo retorna o determina el tamaño del arreglo (el numero de elementos que contiene). Es muy importante aprender que para referirnos a un elemento del arreglo tenemos que hacer referencia a su indice. En el ejemplo ilustrado anterior sabemos que nuestro arreglo int numeros[] en la posición (indice) 2 contiene el valor de 30, para escribir en código lo anterior se escribe el nombre de nuestro arreglo y entre los corchetes la posición (indice): numeros[ 3 ].

En el primer código ya declaramos nuestro arreglo con 5 elementos y dijimos que todos los elementos tienen valor de 0, para visualizar estos elementos basta con imprimirlos en pantalla. Ejemplo: si quisiéramos imprimir el valor que contiene nuestro arreglo en el indice 2, escribiríamos la siguiente linea: System.out.println(numeros[ 2 ]); y esto nos mostraría en pantalla "0". Y si quisieramos mostrar todos los elementos de nuestro arreglo, bastaría con implementar un for:
//Archivo: Arreglo.java

public class Arreglo{
 
 public static void main(String args[]){
  
  int numeros[];
  numeros = new int[5];
  System.out.println("Indice\tValor");
  
  for(int contador=0; contador<numeros.length; contador++)
          System.out.println(contador+"\t\t"+numeros[contador]);
 }
}
En este programa en la linea 7 declaramos nuestro arreglo numeros de tipo int y en la linea 8 creamos el objeto y establecemos el tamaño del arreglo. Para mostrar lo que contiene cada indice, haremos 2 columnas, una donde vaya el numero del indice del arreglo y otra en donde se muestre el valor contenido por cada indice. En la linea 9 imprimimos el encabezado de las dos columnas: "Indice" y "Valor".

En la linea 11 hacemos un for para recorrer y mostrar todos los elementos del arreglo. Declaramos e inicializamos ahí mismo un contador=0 y la condición que daremos para que siga iterando sera que: mientras contador sea menor que numero.length (recuerde que la función .length obtiene el numero de elementos que hay en el arreglo) el for siga iterando, y hacemos un incremento en contador. Como cuerpo del for en la linea 12 imprimimos el resultado de cada ciclo: Se indica que se imprima la variable contador (que irá de 0 hasta 4 porque el tamaño de nuestro arreglo es de 5 elementos, pero se empieza a contar desde 0) y en la segunda columna ira imprimiendo el valor del elemento del arreglo; en este ejemplo: (contador+"\t\t"+numeros[ contador ]) estamos indicando que primero se imprima el numero que vale contador y después dará dos espacios de tabulacion y después imprime lo que contiene nuestro arreglo en la posición contador (y como contador va incrementando en cada ciclo, contador valdrá desde 0 hasta 4, que son el numero de indices que tenemos para nuestro arreglo). Obtendremos un resultado mas o menos así:

                                        Indice                    Valor
                                        0                            0
                                        1                            0
                                        2                            0
                                        3                            0
                                        4                            0

Inicializador de Arreglo

También podemos crear e inicializar y asignarle los datos a nuestro arreglo mediante un Inicializador de Arreglo, haciéndolo de esta manera se crea nuestro arreglo estableciendo el tipo de datos que contendrá, en seguida el nombre del arreglo, los corchetes, un signo de asignación (=) y después entre llaves ({}), los elementos que contendrá nuestro arreglo, cada elemento deberá ir separado por comas. Como en esta ocasión nosotros no estamos estableciendo directamente el numero de elementos que queramos que nuestro arreglo contenga, el programa, al momento de la compilación, determinara el tamaño del arreglo en función a la cantidad de elementos que hayamos insertado entre las llaves; De igual manera, en el orden que nosotros fuimos poniendo los elementos del arreglo, nuestro programa asignara automáticamente el indice del arreglo para cada elemento de este (recordando que el indice se empieza a contar desde 0). A continuación crearemos nuestro arreglo de esta manera, tomando como referencia el ejemplo ilustrado de arriba; Se creara el arreglo y ahí mismo se asignaran los valores para cada indice y posteriormente se imprimirán dichos valores:
//Archivo: Arreglo.java

public class Arreglo{
 
 public static void main(String args[]){
  
  int numeros[] = {10, 20, 30, 40, 50};
  System.out.println("Indice\tValor");
  
  for(int contador=0; contador<numeros.length; contador++)
          System.out.println(contador+"\t\t"+numeros[contador]);
 }
}

6 comentarios:

  1. creo que hay un error en el for.. no indicas cuando termina el ciclo ni el aumento de la variable contador

    ResponderBorrar
  2. Esta bien el programa, como indicabamos todos los programas estan probados, corren (ya los corrí), pero si note tambien, que habia una falla ahi, al parecer no aparecia el codigo completo, pero ya esta resuelto, vuelve a recargar la pagina para ver el codigo en su totalidad. Saludos!

    ResponderBorrar
  3. ¡GRACIAS POR SUS COMENTARIOS! Después subiremos más sobre Arreglos bidimensionales y multidimensionales.

    ResponderBorrar
  4. Deberias comenzar a hablar de los arreglos Bidimencionales.

    ResponderBorrar
  5. oie y como haces un arreglo dinamico q se expanda cuando se llene y se redusca cuando uno de sus indices sea eliminada, sin usar metodos (arrayList u otro) propios de java?

    ResponderBorrar