Arreglos en Java: ¿cómo declararlos e inicializarlos? Guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿por qué esta pregunta atormenta incluso a desarrolladores Java experimentados?

\n\n

Si alguna vez has buscado en Google «How do I declare and initialize an array in Java?», no estás solo. Esta pregunta en Stack Overflow ha acumulado cientos de miles de visitas y sigue creciendo. Parecería sencillo, ¿verdad? Pero el diablo, como siempre, está en los detalles. Java es un lenguaje de tipado estricto, y la sintaxis de los arreglos aquí puede confundir a un principiante.

\n\n

En este artículo, analizaremos todas las formas posibles de declarar e inicializar arreglos en Java. Aprenderás la diferencia entre int[] arr y int arr[], cómo crear correctamente arreglos de objetos y cómo evitar caer en la trampa de NullPointerException. ¡Allá vamos!

\n\n

1. Conceptos básicos: ¿qué es un arreglo en Java?

\n\n

Un arreglo en Java es un contenedor que almacena una cantidad fija de elementos del mismo tipo. A diferencia de Python o JavaScript, donde los arreglos pueden ser dinámicos, en Java el tamaño del arreglo se define al crearlo y no se puede modificar.

\n\n
int[] numbers; // declaración (declaration)\nnumbers = new int[5]; // inicialización (initialization) — asignación de memoria para 5 elementos\n
\n\n

En la primera línea, le decimos al compilador: «Quiero crear una variable que hará referencia a un arreglo de números enteros». En la segunda, asignamos memoria para 5 elementos. Solo después de esto, el arreglo está listo para usarse.

\n\n

2. Formas de declarar un arreglo

\n\n

En Java existen dos sintaxis para declarar un arreglo. Ambas son válidas, pero la comunidad Java (y los estándares oficiales de codificación de Oracle) recomiendan la primera opción.

\n\n

Forma 1: tipo de dato + corchetes antes del nombre de la variable

\n
int[] myArray;\nString[] names;\ndouble[] prices;\n
\n\n

Forma 2: corchetes después del nombre de la variable (estilo C/C++)

\n
int myArray[];\nString names[];\ndouble prices[];\n
\n\n

¿Cuál elegir? La primera opción se lee de forma más natural: int[] myArray — «arreglo de números enteros llamado myArray». La segunda opción puede ser confusa, especialmente cuando declaras varias variables en una sola línea:

\n\n
int[] arr1, arr2; // ambas variables son arreglos\nint arr3[], arr4; // arr3 es un arreglo, arr4 es un número entero común (¡error!)\n
\n\n

Por lo tanto, usa siempre tipo[] nombre.

\n\n

3. Inicialización de un arreglo: 4 formas comprobadas

\n\n

Después de la declaración, el arreglo debe inicializarse. Aquí te mostramos cómo hacerlo correctamente.

\n\n

Forma 1: Creación de un arreglo vacío especificando el tamaño

\n
int[] numbers = new int[10]; // arreglo de 10 elementos, todos iguales a 0 (por defecto)\nString[] words = new String[5]; // arreglo de 5 cadenas, todas iguales a null\n
\n\n

Esta forma es adecuada si planeas llenar el arreglo más tarde (por ejemplo, en un bucle). Es importante recordar: para tipos numéricos, los valores por defecto son 0, para boolean es false, y para tipos de referencia es null.

\n\n

Forma 2: Inicialización con un literal de arreglo

\n
int[] numbers = {1, 2, 3, 4, 5};\nString[] fruits = {"apple", "banana", "orange"};\n
\n\n

Esta es la forma más corta y conveniente cuando conoces todos los elementos de antemano. Ten en cuenta: esta sintaxis funciona solo en la declaración.

\n\n

Forma 3: Arreglo anónimo (sin nombre de variable)

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

Esta variante es útil cuando necesitas pasar un arreglo a un método sin crear una variable separada:

\n\n
printArray(new int[]{10, 20, 30});\n
\n\n

Forma 4: Inicialización mediante un bucle

\n
int[] squares = new int[10];\nfor (int i = 0; i < squares.length; i++) {\n    squares[i] = (i + 1) * (i + 1);\n}\n
\n\n

Ideal para llenado dinámico, por ejemplo, calcular valores o leer datos de un archivo.

\n\n

4

Blogs

Book Recommendations