¿Qué es un array en Java?

Cuando comienzas a dar tus primeros pasos en programación uno de los primeros conceptos que te harán volar la cabeza es el de Array - arreglo o vector en castellano - pues aprender a manejarlos no solo es de uso obligado sino que también es algo que te ahorrará trabajo en el futuro. Por eso vamos a intentar explicarlo de manera sencilla para que le pierdas el miedo y veas que programar en Java es fácil.

Imagina que estás desarrollando un programa muy básico, algo como una calculadora. En principio no necesitas gran cosa, tan solo declarar al menos dos variables donde almacenar los valores introducidos y las funciones necesarias para realizar las operaciones básicas como SUMA, RESTA y etcétera. Hasta aquí todo muy fácil ¿verdad? ¿Pero qué ocurre si tenemos que almacenar los diferentes valores almacenados? ¿Cómo podemos trabajar sin tener que declarar cientos de variables y no volvernos locos? Aquí es donde los Array entran a jugar como la navaja suiza que siempre debes tener a mano.

“Si estás dando tus primeros pasos en Java no te escondas, no tengas miedo, los usarás en todos los lenguajes de programación modernos y una vez que aprendas a usarlos no querrás dejar de hacerlo.”

 

¿Qué es un array?

Para definir qué es un array en Java debemos pensar en ellos como una estructura de datos que nos permite almacenar una serie de datos de un mismo tipo. Además, el tamaño de un array en Java es fijo y se declara en un primer momento, no pudiendo cambiarse más adelante como sí ocurre en otros lenguajes. Esto que parece una limitación no lo es tanto, nos permite trabajar de un modo más ordenado y claro.

Se accede a cada elemento individual del array mediante un número entero denominado índice. 0 es el índice del primer elemento y n-1 es el índice del último elemento, siendo n, la dimensión del array. Y dicho esto seguro que ahora entiendes el porqué de la broma en donde los informáticos comenzamos a contar por 0 y no en 1 como el resto de las personas. ;)

Otro punto a tener en cuenta es que los arrays son objetos - otro concepto chulo y super importante del que hablaremos más adelante - en Java y como tales vamos a ver los pasos que hemos de seguir para usarlos convenientemente.

 

Inicializar y usar los elementos del array

La declaración de un array en Java y su inicialización se realiza de la siguiente manera:


tipo_dato nombre_array[];
nombre_array = new tipo_dato[tamanio];

 

Por ejemplo, podríamos declarar un array de caracteres e inicializarlo de la siguiente manera:


char arrayCaracteres[];
arrayCaracteres = new char[10];

 

Como podemos ver acabamos de inicializar un Array de caracteres para luego definir su tamaño en 10 posiciones de memoria y tal como decía antes, los arrays se numeran desde el elemento cero, que sería el primer elemento, hasta el tamaño -1 que sería el último elemento. Es decir, si tenemos un array de diez elementos como en el ejemplo, el primer elemento sería el cero y el último elemento sería el nueve.

Existe otra forma de inicializar un Array en Java optando por definir directamente su contenido y amoldando su tamaño en base al número de elementos que definimos. Para ello debemos seguir el siguiente ejemplo:


tipo_dato nombre_array[] = {elemento1, 
elemento2, ... , elementoN};

 

Por ejemplo, podemos inicializar un array o una matriz Java en una única línea de la siguiente forma:


// Tenemos un array de 5 elementos.

char array[] = {'a','b','c','d','e'};
// Tenemos un array de 4x4 elementos.

int array[][] = { {1,2,3,4}, {5,6,7,8}};

 

A estas alturas posiblemente te estés preguntando cómo acceder a la información contenida en un Array. Para acceder a un elemento específico utilizaremos los corchetes de la siguiente forma. Entendemos por acceso, tanto el intentar leer el elemento, como asignarle un valor:


// Lectura de su valor.
arrayCaracteres[numero_elemento];

 

Por ejemplo, para acceder al tercer elemento lo haríamos de la siguiente forma:


// Lectura de su valor.
char x = arrayCaracteres[2];

// Asignación de un valor. Como 
se puede comprobar se pone el 
número dos, que coincide con el
tercer elemento. Ya que como
dijimos anteriormente el
primer elemento es el cero.
arrayCaracteres[2] = 'b';

 

Ahora que vamos entendiendo cómo declarar e inicializar un array nos queda la parte “delicada” que no es otra que poder recorrerlo y poder mostrar su contenido. Por suerte el Java comprueba que el índice de cada array no sea mayor a su dimensión lo que facilita un poco las cosas. Con todo y para no andar recordando la longitud de cada array, existe la variable de solo lectura .length que nos devuelve el número de elementos que contiene un array. Por ejemplo:



// Declaramos un array y mostramos su
contenido mediante un bucle for String[] 
nombres={"Juan", "José", "Miguel",
"Antonio"};

for(int i=0; i < nombres.length; i=++){
         System.out.println(nombres[i]);
    }

 

 

Arrays multidimensionales

Un array puede tener múltiples dimensiones. Esto que suena un poco a “cosa del demonio”, en realidad no lo es tanto y nos ayudará mucho en nuestros proyectos futuros. Manejarlo es como jugar al hundir la flota. Para entender los Arrays multidimensionales o también llamados matrices tenemos que pensar en un array que contiene N dimensiones o ejes. Pero no te asustes, lo más común es encontrarnos ejes de dos o tres dimensiones. Rara vez necesitarás más. Por ejemplo:


// Tenemos una matriz o array
multidimensional de 3 dimensiones
int[][] matriz={  {32, 87, 3, 589},
                  {12, -30, 190, 0},
         {622, 127, 981, -3, -5}  };

// Vamos a escribir un programa 
para recorrer el array y buscar
un número existente en el array. 

    int numero=12;
    int i=0, j=0;

  //  buscamos
    for(i=0; i<matriz.length; i++){
    for(j=0; j<matriz[i].length; j++){
         if(matriz[i][j]==numero){
            break; //rompemos el bucle
                } 
            }
        }
// mostramos resultado
   System.out.println("buscado: 
matriz("+ i+", "+j+")="+matriz[i][j]);

 

Como ves los Array son un gran invento y tampoco cuesta mucho hacerse con ellos y una vez adquirida la suficiente práctica resulta imposible no usarlos con frecuencia. Por ejemplo, puedes definir un array con los meses del año o días de la semana o puede servirte como base para desarrollar un algoritmo que te permita crear complejos programas o juegos tales como un ajedrez. El límite lo pones tú, nosotros solo te mostramos el camino. ;)

 

Guía de Posibilidades Profesionales en el Ecosistema de Java