TPROG1-U1-L2-Arrays en Java (print)
TPROG1-U1-L2-Arrays en Java (print)
Arrays en Java
Declarar un Array
clase_o_tipo_de_dato[] nombre_del_Array;
Por ejemplo, si quisiera crear un Array unidimensional para guardar los nombres de los
días de la semana, haríamos:
String [] nombresDiasDeLaSemana;
Cada par de corchetes [] indica una dimensión o eje de la estructura. Por eso, para
agregar una nueva dimensión lo único que debemos hacer es agregar un nuevo par de
corchetes. Generalmente, cada eje hace referencia a un valor agrupador o identificador.
Por ejemplo, si quisiera guardar el acumulado de milímetros de lluvia caída durante cada
uno de los meses de los últimos tres años, necesitaríamos dos ejes que se referencien a
los años y a los meses, por lo que tendríamos dos pares de corchetes:
float[][] mmPrecipitaciones;
No obstante, en ambos casos sólo tenemos una única referencia a cada una de las
estructuras, pues en Java los Arrays son objetos. Java no crea toda la estructura en
este momento pues no sabe cuál será el tamaño que queremos darle. Para eso, debemos
definirlos.
Definir un Array
Al definir una Array le damos el tamaño que deseamos. Este será un tamaño
inmodificable pues, como en muchos otros lenguajes, en Java los Arrays son
estructuras estáticas.
El tamaño de la dimensión siempre es un número igual o mayor que 2. Este valor no tiene
por qué ser un valor constante; simplemente debe ser un valor conocido al momento de
definir el tamaño, y puede provenir de variables, operaciones matemáticas o cualquier
Página 1 de 5
Instituto de Tecnología ORT
Carrera de Analista de Sistemas
Materia: Taller de Programación 1
Unidad 1 - Arrays en Java
otra instrucción que genere un número, siempre y cuando ese número sea un valor
entero positivo.
Si la estructura tiene más de una dimensión, cada par de corchetes debe contener su
tamaño. Por ejemplo, para el Array de dos dimensiones que definimos antes para
acumular las precipitaciones, hacemos:
TIP: declarar las dimensiones directamente con el valor numérico no es una buena
práctica. Para estos casos aconsejamos usar constantes, que son mucho más claras:
Pero hay una forma más de definir un Array, y es a partir de sus propios valores. En este
caso, los mismos datos determinan el tamaño de cada dimensión. Para el caso anterior
de los días de la semana podemos hacer o siguiente:
int[][] numeros = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
char [][] datos = { { ‘A’, ‘B’, ‘C’, ‘D’ }, { ‘E’, ‘F’ }, { ‘G’,
‘H’, ‘I’, ‘J’, ‘K’, ‘L’ }, { ‘M’, ‘N’ } };
En este caso, los “grupos” de caracteres que pertenecen a la segunda dimensión miden
4, 2, 6 y 2 “celdas”, respectivamente.
Página 2 de 5
Instituto de Tecnología ORT
Carrera de Analista de Sistemas
Materia: Taller de Programación 1
Unidad 1 - Arrays en Java
En Java los Arrays son objetos, y como tales tienen una propiedad llamada length, la cual
indica el largo de esa dimensión. Así, para las estructuras definidas anteriormente,
tenemos:
datos[0].length -> 4 (0 a 3)
datos[1].length -> 2 (0 a 1)
datos[2].length -> 6 (0 a 5)
datos[3].length -> 2 (0 a 1)
Para recorrer completo un Array podemos usar el ciclo for. Será necesario un for para
cada una de las dimensiones, y sus valores nunca deben superar el índice máximo de la
dimensión, que es tamaño - 1. En caso de querer alcanzar una posición menor a cero ó
un valor igual o mayor que el tamaño de la dimensión se dará un error de ejecución.
Página 3 de 5
Instituto de Tecnología ORT
Carrera de Analista de Sistemas
Materia: Taller de Programación 1
Unidad 1 - Arrays en Java
TIP: para navegar un Array siempre apoyate en las constantes usadas para crearlo o en el
length de la dimensión. Así nunca vas a te vas a caer de la estructura.
Veamos, por ejemplo, cómo recorrer el Array de una dimensión de los días de la semana:
Debés asegurarte de que los índices de cada ciclo son acordes en rango al tamaño de la
dimensión. En el caso anterior estamos recorriendo todos los meses de cada año
ordenados por mes y año. Pero para recorrerlo “cruzado” (todos los eneros, todos los
febreros, etc.) invertiremos el orden de los ciclos pero no el de los índices:
Teniendo en cuenta que el valor inicial de un objeto es un null, y que no es necesario
llenar el Array en orden, antes de usar un elemento de un Array de objetos debemos
chequear que su valor no sea null.
Veamos el siguiente ejemplo: Un consultorio médico da 10 turnos por día, uno cada
media hora. No es normal que los turnos se reserven en orden, por lo que es posible que
Página 4 de 5
Instituto de Tecnología ORT
Carrera de Analista de Sistemas
Materia: Taller de Programación 1
Unidad 1 - Arrays en Java
la estructura contenga algo así (cada par valor encerrado entre corchetes es uno de los
elementos del Array:
[null][Turno][Turno][null][Turno][Turno][Turno][null][Turno][null]
int i = 0;
while (i < estructura.length && estructura[i] != valor_buscado) {
i++;
}
if (i != estructura.length) {
System.out.writeln(“El valor buscado está en la posición ” + i);
} else {
System.out.writeln(“El valor buscado no se encuentra en la
estructura”);
}
TIP: Si recorrés la estructura al revés (desde la última posición hacia la primera), en caso
de que no encuentres el valor buscado el índice siempre quedará en -1.
int i = estructura.length - 1;
while (i <= 0 && estructura[i] != valor_buscado) {
i++;
}
if (i != -1) {
System.out.writeln(“El valor buscado está en la posición ” + i);
} else {
System.out.writeln(“El valor buscado no se encuentra en la
estructura”);
}
Página 5 de 5