Arrays de datos con ejemplos en JAVA

Los arrays de datos nos serán de gran ayuda cuando queremos manejar conjuntos de elementos del mismo tipo como un grupo de 10 números enteros o 100 objetos de la clase Persona. Para declarar arrays en java utilizaremos los corchetes "[]" de la siguiente manera:
//Arrays de tipo primitivo
int[] numeros1; //Array1 declarado
int[] numeros2 = new int[10]; //Array2 iniciado
//Arrays de tipo referencia
Persona[] personas1; //Array3 declarado
Persona[] personas2 = new Personas[10]; //Array4 iniciado
Como vemos, la sintaxis para declarar arrays de tipos primitivos y referencias es la misma, en cambio el resultado final es muy distinto para los dos casos.

El en array2, hemos creado un array con capacidad para 10 números enteros (los índices irán desde 0 hasta 9), dentro de cada posición del array podemos almacenar un entero.


En cambio, en el array4, estamos definiendo un array capaz de albergar 10 referencias de tipo Persona, en este caso, lo que tenemos en cada posición del array NO ES UN OBJETO de tipo persona, sino una referencia a un objeto de tipo persona situado en otro lugar.

Las diferencias entre arrays de tipos primitivos y referencias son muy importantes. Mientras que un array de tipo primitivo, está listo para almacenar datos del tipo especificado en sus posiciones una vez se a creado, en los arrays de tipos referencia no se crea ninguna instancia de la clase correspondiente, lo único que se ha creado es un conjunto de referencias que se pueden conectar a objetos de dicha clase.

Podemos ver esta diferencia con un ejemplo:
int[] numeros = new int[10];
Persona[] personas = new Persona[10];

System.out.println("Valor en numero[5]: " + numeros[5]);
System.out.println("Valor en personas[5]: " + personas[5].getNombre());
Este código devolverá para la posición 5 del array numeros, el valor por defecto para un tipo de dato primitivo int, en este caso un 0, y en la posición 5 del array de tipo de dato referencia llamado personas, el resultado será null que en java tiene el significado de referencia no asignada, la salida original es la siguiente:
Valor en numero[5]: 0
Exception in thread "main" java.lang.NullPointerException
        at Main.main(Main.java:7)
Para resolver este problema, solo debemos asignar a la referencia del nuestro array personas en la posición 5, una referencia a un objeto de tipo Persona previamente creado:
int[] numeros = new int[10];
Persona[] personas = new Persona[10];
//Linea importante
personas[5] = new Persona("Alejandro", "Santiago", 555555555);

System.out.println("Valor en numero[5]: " + numeros[5]);
System.out.println("Valor en personas[5]: " + personas[5].getNombre());
Ahora si, al ejecutar este código se obtendrá el siguiente resultado:
Valor en numero[5]: 0
valor en personas[5]: Alejandro
Como vemos, una vez que una referencia está apuntando a un objeto, podemos utilizarla por ejemplo para llamar a sus métodos o acceder a sus atributos que sean accesibles.

Comentarios

  1. Muy buen artículo, como todos los que has publicado, muchas gracias!

    ResponderEliminar

Publicar un comentario

Si tenéis alguna duda o sugerencia, no dudéis en comentar. ;)

Entradas populares de este blog

Ordenar cualquier array con SORT en JAVA

Modificadores de acceso (public, protected y private) JAVA

Calcular factorial de un numero en JAVA