Continuando con las notas de Java, voy a explicar como trabajar con los Arrays en Java. Un array es un grupo de varias variables del mismo tipo, que son referenciadas por el mismo nombre.

Los arrays son usados para almacenar multitud de variables en una única variable, en lugar de declarar separadamente cada una de ellas.

Las variables en un array están ordenadas. Cada una de ellas ocupa una posición indicada por el índice del array. El índice del array empieza con el valor 0 para la posición 1, el valor 1 para la posición 2 y así sucesivamente.

Accedemos a cada elemento del array utilizando el índice que indica la posición del elemento. Por ejemplo, si queremos acceder al elemento del array que ocupa la posición 5, tendríamos que referenciarlo usando el valor 4 para el índice.

Declaración de un array en Java

Cuando declaramos un array, definimos el tipo de las variables que almacenaremos en el array. Recordad que son todas del mismo tipo. A continuación, abrimos y cerramos corchetes, y después escribimos el nombre del array. La sintaxis sería la siguiente:

<type>[] variable_name    ->     int[ ] misNumeros

Para realmente crear el array y reservar memoria para el mismo, hay que usar la palabra clave new, siguiendo la siguiente sintaxis:

variable_name =  new type[size]    ->  misNumeros = new int[7]

Inicialización de un array en Java

Para inicializar un array, tenemos dos opciones:

  1. Lo inicializamos en la misma declaración. Colocamos los valores de los elementos del array entre llaves, como en el ejemplo siguiente:

int[ ] misNumeros = {40, 55, 63, 17, 22, 68, 97, 89};

  1. Actualizamos el valor para cada elemento del array accediendo a través del índice que indica su posición:

int [] misNumeros;

misNumeros = new int[8];

misNumeros[0]=40; misNumeros[1]=55; misNumeros[2]=63; misNumeros[3]=17; misNumeros[4]=22; misNumeros[5]=68; misNumeros[6]=97; misNumeros[7]=89;

A cada elemento del array se accede a través de su índice. El índice comienza en 0 y finaliza en: tamaño total del array-1

Como siempre, veámoslo con un ejemplo práctico:

Actividad 13.1: Practicando con arrays

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

public class JugandoConArrays{

     public static void main(String []args){

        int[] numPrimos = {1,2,3,5,7,11,13,17,19,23,29,31};

        System.out.println («Primer elemento: «+numPrimos[0]);

        System.out.println («Quinto elemento: «+numPrimos[4]);

        int arrayLength = numPrimos.length;

        System.out.println («Número de elementos en el array: «+arrayLength);

        for (int i=0;i<arrayLength;i++){

            System.out.println («El elemento en la posición»+i+» es «+numPrimos[i]);

        }

     }

}

Línea 3: Declaro e inicializo un array de valores enteros

Línea 4: Dibujamos en la pantalla el valor del primer elemento del array, que ocupa la primera posición y es referenciado por el valor de índice: 0.

Línea 5: Dibujamos por pantalla el valor del elemento en la quinta posición.

Línea 6: Uno de los parámetros de un array es “length” que devuelve la longitud de un array, es decir, el número de elementos que tiene. En esta sentencia guardamos el valor de la longitud del array en la variable arrayLength.

Línea 7: dibujamos en pantalla la longitud del array.

Líneas de la 8 a la 10: Uso un bucle for para recorrer el array empleando su índice, y dibujar todos los elementos del mismo. El bloque for lo veremos en detalle en el cuaderno de Estructuras de control.

  • Si ahora ejecutamos el programa, obtendremos el siguiente resultado:

Primer elemento: 1

Quinto elemento: 7

Número de elementos en el array: 12

El elemento en la posición0 es 1

El elemento en la posición1 es 2

El elemento en la posición2 es 3

El elemento en la posición3 es 5

El elemento en la posición4 es 7

El elemento en la posición5 es 11

El elemento en la posición6 es 13

El elemento en la posición7 es 17

El elemento en la posición8 es 19

El elemento en la posición9 es 23

El elemento en la posición10 es 29

El elemento en la posición11 es 31 

  1. Vamos a practicar ahora con un array de Strings. Es decir, sus elementos serán cadenas de texto.
  2. Tecleamos el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

public class JugandoConArrays{

     public static void main(String []args){

        String[] estudiantes ={«Pedro»,»Antonio»,»Lara»,»Fabiola»,»Pablo»};

        String[] asignaturas;

        asignaturas = new String[3];

        asignaturas[0]=»Matemáticas»;

        asignaturas[1]=»Lengua»;

        if (asignaturas[2]==null){

            System.out.println («La tercera asignatura no está definida todavia»);

        }

        asignaturas[2]=»Quimica»;

        System.out.println(«Los estudiantes son: «);

        for (int i=0;i<estudiantes.length;i++){

            System.out.println ((i+1)+».- «+estudiantes[i]);

        }

        System.out.println(«Las asignaturas son: «);

        for (int i=0;i<asignaturas.length;i++){

            System.out.println ((i+1)+».- «+asignaturas[i]);

        }

     }

}

Línea 3: Declaramos e inicializamos el array “estudiantes” en la misma sentencia. Es un array de Strings, es decir de cadenas de texto. Recordemos que un String era a su vez una cadena de charts.Línea 4: Declaramos el array “asignaturas”. Es un array de Strings.Línea 5: Inicializamos el array “asignaturas”. Es decir, reservamos espacio en memoria para un array de 3 Strings.Línea 6 y 7: Guardamos los valores de los dos primeros elementos del array “asignaturas”. Para el tercer String, que estaría en la posición 3, referenciado por un valor de índice 2, no hemos guardado ningún valor, por lo que el elemento en esa posición contendrá el valor null. Este valor se emplea para indicar que no hay guardado nada.Líneas 8 a 10: Chequeamos si el último String del array es nulo, es decir está vacío.Línea 11: Guardamos el valor “Quimica” en el último elemento del array “asignaturas”, donde antes estaba vacío.Líneas 12 a 19: Recorremos ambos arrays dibujando los valores que contienen en pantalla.

  • Si ejecutamos el programa, el resultado sería:

La tercera asignatura no está definida todavia

Los estudiantes son:

1.- Pedro

2.- Antonio

3.- Lara

4.- Fabiola

5.- Pablo

Las asignaturas son:

1.- Matemáticas

2.- Lengua

3.- Quimica

Arrays Multidimensionales

Un array multidimensional es un array en el que cada elemento es otro array. Para acceder a un elemento final del tipo declarado en el array, tendré que indicar los valores de todos los índices. Y tendremos tantos como dimensiones tenga el array.

Para crear un array multidimensional, emplearemos un par de corchetes por dimensión. Veámoslo en un ejemplo:

Actividad 13.2: Practicando con arrays multidimensionales

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public class ArrayMultidimensional{

     public static void main(String []args){

        String[] estudiantes ={«Pedro»,»Antonio»,»Lara»,»Fabiola»,»Pablo»};

        String[] asignaturas;

        int[][] notas;

        asignaturas = new String[3];

        asignaturas[0]=»Matemáticas»;

        asignaturas[1]=»Lengua»;

        asignaturas[2]=»Quimica»;

//definiendo las dimensiones del array multidimensional

        notas = new int [asignaturas.length][estudiantes.length];

        System.out.println («número de filas = «+asignaturas.length);

        System.out.println («número de columnas = «+estudiantes.length);

//guardando valores en el array multidimensional

        notas[0][0]=5;

        notas[0][1]=2;

        notas[0][2]=8;

        notas[0][3]=7;

//accediendo a los valores almacenados

        int fila = 1;

        int columna = 2;

        System.out.print(«El estudiante «+estudiantes[columna-1]);

        System.out.print(» ha obtenido una nota de «+notas[fila-1][columna-1]);

        System.out.println(» en la asignatura «+asignaturas[fila-1]);

    }

}

Línea 3: Declaración del array estudiantes. También lo inicializamos, asignando valores.

Línea 4: Declaración del array asignaturas.

Línea 5: Declaración del array multidimensional asignaturas.

Línea 6 a 9: Creación e inicialización del array asignaturas.

Línea 11: Creación del array multidimensional notas. Tiene dos dimensiones basadas en los anteriores arrays (estudiantes y asignaturas). En el array multidimensional notas, guardaremos las notas de los diferentes alumnos en las distintas asignaturas. La primera dimensión indica la asignatura y la segunda indica el estudiante.

Líne 15 a 18: Guardamos algunos valores en nuestro array multidimensional. Los valores para el resto de las combinaciones de los índices de las dimensiones, guardaran “0”, ya que el array es de tipo int.

Línea 20: Declaro e inicializo la variable “fila que usaré como primer índice del array notas.

Línea 21: Declaro e inicializo la variable “columna” que usaré como segundo índice del array notas.

Línea 22 a 24: Escribo en pantalla los valores de los diferentes arrays, para los índices empleados.

  1. Ejecutamos el programa, y el resultado será:

número de filas = 3

número de columnas = 5

El estudiante Antonio ha obtenido una nota de 2 en la asignatura Matemáticas

 

NOTA:

Este post es parte de la colección “Java” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.